繁体   English   中英

在Theano执行期间选择GPU

[英]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设备。 但是如果你想在不改变环境变量的情况下以编程方式选择它。

  1. 确保您没有在.theanorc文件中选择设备。 所以没有:

    device=gpu

  2. 在调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM