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

Posted

技术标签:

【中文标题】如何使用 tensorflow 在 keras 中禁用 GPU?【英文标题】:How to disable GPU in keras with tensorflow? 【发布时间】:2017-08-21 14:05:05 【问题描述】:

我想比较使用和不使用 gpu 的代码的处理时间。我的 keras 后端是 Tensorflow。所以它会自动使用 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

【问题讨论】:

【参考方案1】:

你尝试过这样的事情吗? :

$ CUDA_VISIBLE_DEVICES='' time python mnist_mlp.py 

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

【讨论】:

【参考方案2】:
$ CUDA_VISIBLE_DEVICES=-1 time python mnist_mlp.py

似乎是 a) 新方式,或者 b) 一种适用于 Windows 和 Linux 的方式。

【讨论】:

new way 是什么意思? @oak:我的意思是与 Nassim Ben 的回答相比。 哈哈好吧,所以只有 b 在 windows 和 linux 下都有效,对吧? 使用除有效 gpu ID 之外的任何东西将默认为 CPU,-1 是一个很好的常规值,它永远不是有效的 gpu ID。另一个答案的问题可能与引号在 Windows 上的行为不同有关。 CUDA_VISIBLE_DEVICES=-1 应该始终有效。 os.environ['CUDA_VISIBLE_DEVICES']='-1' 如果要在tensorflow导入前设置

以上是关于如何使用 tensorflow 在 keras 中禁用 GPU?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google colab 中更改 Keras/tensorflow 版本?

如何使用 Tensorflow 张量设置 Keras 层的输入?

如何在 Tensorflow 2.0 + Keras 中进行并行 GPU 推理?

如何在 keras 中使用 tensorflow ctc_batch_cost 函数?

如何在 Keras 模型中使用 TensorFlow 的采样 softmax 损失函数?

如何在 tensorflow 2.0 w/keras 中保存/恢复大型模型?