我正在4 GPU机器上用theano和烤宽面条训练神经网络。我.theanorc
包含以下几行:
[global]
device = gpu0
所以当我在python中执行时import theano
,我得到了Using gpu device 0: GRID K520
如果在导入theano后选择使用gpu1,该怎么办?我想动态地执行此操作,也就是说,可以不进行编辑.theanorc
吗?甚至在运行时选择它?
恐怕Theano导入后就无法更改执行设备。从文档中:
配置设备
字符串值:“ cpu”,“ gpu”,“ gpu0”,“ gpu1”,“ gpu2”或“ gpu3”
[...]
在程序执行期间不能修改该标志的值。
奖励:但是,假设您要让两个Python进程分别在单独的GPU上运行(这就是您想要的吗?),那么您可以执行以下操作:
import os
os.system("THEANO_FLAGS='device=gpu0' python myscript.py")
os.system("THEANO_FLAGS='device=gpu1' python myscript.py")
或侵入/扩展Python的多处理模块(通过产生子进程来工作),以确保在产生子进程之前设置了标志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句