簡體   English   中英

在Theano執行期間選擇GPU

[英]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設備。 但是如果你想在不改變環境變量的情況下以編程方式選擇它。

  1. 確保您沒有在.theanorc文件中選擇設備。 所以沒有:

    device=gpu

  2. 在調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM