Keras 不使用 GPU - 如何排除故障?

Posted

技术标签:

【中文标题】Keras 不使用 GPU - 如何排除故障?【英文标题】:Keras does not use GPU - how to troubleshoot? 【发布时间】:2018-10-25 02:35:19 【问题描述】:

我正在尝试在 GPU 上训练一个 Keras 模型,使用 Tensorflow 作为后端。

我已经按照https://www.tensorflow.org/install/install_windows 设置好了一切。这是我的设置:

我正在虚拟环境中的 Jupyter 笔记本中工作。 当前 virtualenv 环境已安装tensorflow-gpu。 我安装了 CUDA 9.1 和用于 CUDA 9.1 的 cudaDNN。 cuDNN64_7.dll 位于可通过 PATH 变量访问的位置。 我的计算机上有一个 NVIDIA GeForce GTX 780 和最新的驱动程序。

但是,Tensorflow 没有看到任何可用的 GPU:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality 

incarnation: 5275203639471190827
]

Keras 两者都没有:

from keras import backend as K
K.tensorflow_backend._get_available_gpus()

[]

我该如何调试呢?如何找出问题所在?

【问题讨论】:

您是否按照安装手册中的说明执行了验证 CUDA 和 cuDNN 安装正确的步骤? 呃,我用的是 CUDA 9.1 而不是 CUDA 9.0。也许这就是原因。将切换到 9.0 并重试。 【参考方案1】:

检查nvcc -V

nvidia-smi

看看它是否显示我们的gpu。

假设你的 cuda cudnn 并且一切都检查好了, 你可能只需要 1.卸载keras 2. 卸载张量流 3.卸载tensorflow-gpu 4.只安装tensorflow-gpupip install tensorflow-gpu==1.5.0 5. 立即安装 Keras。

我遵循了这些步骤,现在 keras 使用了 gpu。

希望它在一定程度上有所帮助。

【讨论】:

以上是关于Keras 不使用 GPU - 如何排除故障?的主要内容,如果未能解决你的问题,请参考以下文章

使用 LSTM 和 CNN 对 Keras 进行故障排除以进行时间序列分类

如何检查keras tensorflow后端是GPU还是CPU版本? [复制]

如何检查 keras 是不是使用 gpu 版本的 tensorflow?

如何安装支持 gpu 的 Keras?

如何在 GPU 上使用 Keras?

如何使用 Theano 启用 Keras 以利用多个 GPU