[英]Select GPU during execution in Theano
我正在使用4 GPU機器上的theano和lasagne訓練神經網絡。 我的.theanorc
包含以下幾行:
[global]
device = gpu0
所以當在python中執行import theano
,我得到了Using gpu device 0: GRID K520
如果在導入theano后我選擇使用say gpu1怎么辦? 我想動態地這樣做,也就是說,不進行編輯.theanorc
是不是可能? 甚至在運行時選擇它?
我害怕在導入Theano之后無法更改執行設備。 從文檔 :
config.device
字符串值:'cpu','gpu','gpu0','gpu1','gpu2'或'gpu3'
[...]
在程序執行期間無法修改此標志的值。
Bonus :但是,假設您想要在一個單獨的GPU上運行兩個Python進程(這就是您想要的嗎?),那么您可以執行以下操作:
import os
os.system("THEANO_FLAGS='device=gpu0' python myscript.py")
os.system("THEANO_FLAGS='device=gpu1' python myscript.py")
或者入侵/擴展Python的多處理模塊(通過產生子進程來工作)以確保在生成子進程之前設置標志。
編輯:Theano現在基於GPU陣列后端,以下API不再可用。
正如@EelkeSpaak所提到的,在導入theano之后你無法更改GPU設備。 但是如果你想在不改變環境變量的情況下以編程方式選擇它。
確保您沒有在.theanorc文件中選擇設備。 所以沒有:
device=gpu
在調用import theano
之前選擇GPU設備如下:
import theano.sandbox.cuda theano.sandbox.cuda.use('gpu1') #Results in Using gpu device 1: Tesla K80
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.