[英]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.