如何更改使用 theano 的设备

How can I change device used of theano

我试图更改基于 theano 的程序中使用的设备。

from theano import config
config.device = "gpu1"

但是我得到了错误

Exception: Can't change the value of this config parameter after initialization!

我想知道在代码中将 gpu 更改为 gpu1 的最佳方法是什么?

谢谢

无法在同一进程的代码 运行 中更改此值。你能做的最好的事情就是有一个 "parent" 进程来改变,例如,THEANO_FLAGS 环境变量并产生 children。但是,产卵方式将决定 children 在哪个环境中运行。

另请注意,无法以通过更改维护进程内存的方式来执行此操作。您无法在 CPU 上启动 运行,对存储在内存中的值进行一些处理,然后在 GPU 上更改为 运行 并继续 运行 使用仍在内存中的值早期 (CPU) 工作阶段。必须关闭并重新启动进程才能应用设备更改。

一旦您 import theano 设备已修复,无法在导入过程中更改。

删除 .theanorc 中的 "device" 配置,然后在您的代码中:

import theano.sandbox.cuda
theano.sandbox.cuda.use("gpu0")

对我有用。

https://groups.google.com/forum/#!msg/theano-users/woPgxXCEMB4/l654PPpd5joJ

另一种对我有用的可能性是在导入 theano 之前在过程中设置环境变量:

import os    
os.environ['THEANO_FLAGS'] = "device=gpu1"    
import theano