list_local_device tensorflow 未检测到 gpu

Posted

技术标签:

【中文标题】list_local_device tensorflow 未检测到 gpu【英文标题】:list_local_device tensorflow does not detect gpu 【发布时间】:2018-05-31 23:01:51 【问题描述】:
    有没有办法检查我安装了GPU 版本的Tensorflow? !nvidia-smi

2017 年 12 月 18 日星期一 23:58:01

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   53C    P0    31W /  N/A |   1093MiB /  8105MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1068      G   /usr/lib/xorg/Xorg                           599MiB |
|    0      2925      G   compiz                                       290MiB |
|    0      3611      G   ...-token=11A9F5872A56620B72D1D5DF707CF1FC   200MiB |
|    0      5786      G   /usr/bin/nvidia-settings                       0MiB |
+-----------------------------------------------------------------------------+

但是当我尝试检测列表本地设备时,只有CPU 被检测到。

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

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

incarnation: 3303842605833347443
]

我是否必须设置其他内容才能将GPU 用于KerasTensorflow

【问题讨论】:

您应该安装了“Cuda 8”和“CuDNN 6.1”。并且 only tensorflow-gpu(不是 tensorflow)。 cuda 和 CuDNN 的安装过程和测试在他们的网站上有很好的解释。 我认为已经做到了 您能否将pip show tensorflow-gpupip show tensorflow 的输出添加到您的问题中? 【参考方案1】:

使用 pip install tensorflow-gpuconda install tensorflow-gpu 用于 tensorflow 的 gpu 版本。如果你使用 keras-gpu conda install -c anaconda keras-gpu 命令会自动安装 tensorflow-gpu 版本。在执行这些任何命令之前,请确保您卸载了正常的 tensorflow。

【讨论】:

我有同样的问题,但你的解决方案不起作用。您还有什么建议吗? 从 Tensorflow 2.X 开始,conda install tensorflow 将适用于 GPU。来源:towardsdatascience.com/…【参考方案2】:

你可能需要这个 shell 来配置你的 tensorflow-gpu。

如果你想检查 tensorflow-gpu,你可以运行它。

import tensorflow as tf
with tf.device('/gpu:0'):
  a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
  b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
  c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)

官方文档:Using GPUs.

【讨论】:

keras 怎么样? 您可以查看 Keras 文档:how-can-i-run-keras-on-gpu in keras。我认为您应该首先检查 tensorflow-gpu 是否安装成功。然后尝试在keras中调用它。 有一个有用的answer。【参考方案3】:

使用tensorflow的简单方法是:

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

使用 Keras:

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

【讨论】:

【参考方案4】:

我也有同样的问题,但此页面中的所有内容都无法解决我的问题。我决定更新我的display adapter。按照这种方式:

Control Panel>Device Manager>display adapter>Right click>Update Driver

之后,您必须重新启动计算机,但您应该考虑到这不仅仅是问题的根源。

【讨论】:

【参考方案5】:

我在使用适当的 tensorflow-gpu docker 容器并使用安装到容器内的 virtualenv 中的 tensorflow-gpu 时遇到了 subj。这种组合很可能正确地屏蔽了 GPU 功能,如果仅在没有 virtualenv 的容器中运行 python,则可以使用这些功能。

【讨论】:

【参考方案6】:

我认为您需要安装 cuda(它必须显示在您的 nvidia-smi 中) 你检查过你的 cuda/CUDNN 版本和 tensorflow-gpu 之间的兼容性吗? 这可能会帮助您: https://punndeeplearningblog.com/development/tensorflow-cuda-cudnn-compatibility/

【讨论】:

最好将您链接到的帖子的相关部分包含在您的答案中。这样,如果链接断开,您的回答仍然有用。

以上是关于list_local_device tensorflow 未检测到 gpu的主要内容,如果未能解决你的问题,请参考以下文章

Keras Gpu:配置

如何在 GPU 上使用 Keras?

Tensorflow - GPU 专用与共享内存

张量流的 XLA_GPU 和 XLA_CPU 是啥

TensorBoard的使用(结合线性模型)

模块“tensorflow”没有属性“GPUOptions”