如何更改使用 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
我试图更改基于 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