我正在 4 GPU 机器上使用 theano 和千层面训练神经网络。我的 .theanorc
包含以下几行:
[global]
device = gpu0
所以当我在 python 中执行 import theano
时,我得到 Using gpu device 0: GRID K520
如果在导入 theano 之后,我选择使用 say gpu1 怎么办?我想动态地执行此操作,也就是说,不编辑 .theanorc
是否可能?或者甚至在运行时选择它?
最佳答案
导入Theano后,恐怕不能再更改执行设备了。来自documentation :
config.device
String value: either 'cpu', 'gpu', 'gpu0', 'gpu1', 'gpu2', or 'gpu3'
[...]
This flag’s value cannot be modified during the program execution.
好处:但是,假设您希望两个 Python 进程分别在单独的 GPU 上运行(这是您想要的吗?),那么您可以执行以下操作:
import os
os.system("THEANO_FLAGS='device=gpu0' python myscript.py")
os.system("THEANO_FLAGS='device=gpu1' python myscript.py")
或侵入/扩展 Python 的 multiprocessing模块(通过生成子进程工作)以确保在生成子进程之前设置标志。
关于python - 在 Theano 中执行期间选择 GPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983794/