如何在使用tensorflow的keras中禁用GPU?

11

我希望比较我的代码在使用和不使用GPU时的处理时间。我使用Tensorflow作为keras的后端,因此它会自动使用GPU。我使用keras/examples/mnist_mlp.py模型进行比较。

我已经检查了如下的处理时间。那么,如何禁用GPU?应该修改~/.keras/keras.json吗?

$ time python mnist_mlp.py 
Test loss: 0.109761892007
Test accuracy: 0.9832
python mnist_mlp.py  38.22s user 3.18s system 162% cpu 25.543 total
2个回答

13

你有尝试过类似这样的东西吗?:

$ CUDA_VISIBLE_DEVICES='' time python mnist_mlp.py 

CUDA_VISIBLE_DEVICES通常用于将某些GPU隐藏到CUDA中。在这里,您将它们全部隐藏,因为您没有放置任何可见设备。

CUDA_VISIBLE_DEVICES通常用于隐藏一些GPU,使其无法被CUDA使用。在这里,由于没有指定任何可见设备,因此所有GPU都被隐藏了。


4
$ CUDA_VISIBLE_DEVICES=-1 time python mnist_mlp.py

似乎要么是新的方式,要么是在Windows和Linux上都可行的方式。

“新方式”是什么意思? - oak
@oak:我的意思是与Nassim Ben的答案相比。 - Jonas Byström
好的,所以只有 b 在 Windows 和 Linux 下都可以工作,是吗? - oak
使用除有效的gpu ID以外的任何东西都会默认为CPU,-1是一个良好的传统值,它从未是有效的gpu ID。另一个答案的问题可能与引号在Windows上的行为不同有关。CUDA_VISIBLE_DEVICES=-1应该始终有效。 - David Parks
2
如果在导入tensorflow之前需要设置os.environ['CUDA_VISIBLE_DEVICES']='-1' - Naveen Dennis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接