python - 在 Theano 中执行期间选择 GPU

标签 python gpu theano lasagne

我正在 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/

相关文章:

python - 编译的字节码文件(.pyc)可以在不同的目录中生成吗?

CUDA C 矩阵乘法

python - 我怎么知道 tensorflow 张量是在 cuda 还是 cpu 中?

python - 使用 Theano 实现 LeCun 局部对比度归一化

theano - pytorch 中 theano.tensor.clip 的等价物是什么?

python - 如何使用 unix 套接字加载 2 个 Flask 应用程序来为 nginx/uwsgi 的 2 个子域提供服务?

Python:如何在表达式中创建列表理解后重新使用它们

python - 阅读美丽汤的链接列表

integer - CG 中的定点数据类型整数精度范围(12 位)

python - 如何更新keras中的权重以进行强化学习?