列出本地设备:TensorFlow未检测到GPU。

9
  1. 有没有办法检查我是否安装了 TensorflowGPU 版本?
  2. !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
]

我需要设置其他东西才能在KerasTensorflow中使用GPU吗?


您应该安装“Cuda 8”和“CuDNN 6.1”。并且仅限于tensorflow-gpu(而不是tensorflow)。有关cuda和CuDNN的安装过程和测试在它们的网站上有很好的解释。 - Daniel Möller
我认为已经完成了。 - kim jake
你能在你的问题里添加 pip show tensorflow-gpupip show tensorflow 的输出吗? - mrry
6个回答

3

如果您想使用gpu版本的tensorflow,请使用pip install tensorflow-gpuconda install tensorflow-gpu命令进行安装。如果您正在使用keras-gpu,则使用conda install -c anaconda keras-gpu命令将自动安装tensorflow-gpu版本。在执行任何这些命令之前,请确保已卸载普通版的tensorflow。


3
我有同样的问题,但是你的解决方案不起作用。你有其他建议吗? - Hamed Baziyad
1
从Tensorflow 2.X开始,conda install tensorflow将适用于GPU。来源:https://towardsdatascience.com/installing-tensorflow-gpu-in-ubuntu-20-04-4ee3ca4cb75d - Joooeey

1
你可能需要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)

官方文件:使用GPU

Keras怎么样? - kim jake
您可以查看Keras文档:如何在Keras中运行GPU。我认为您应该先检查tensorflow-gpu是否已成功安装,然后尝试在Keras中调用它。 - dxf
这里有一个对你有用的答案 - dxf

1
使用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()

0
当我使用适当的tensorflow-gpu docker容器,并在容器内安装了tensorflow-gpu到虚拟环境中时,我遇到了这个问题。最有可能的是,这种组合可以正确地保护GPU功能,否则如果仅在容器中运行python而没有虚拟环境,则GPU功能是可用的。

0

1
最好在你的答案中包含链接文章中相关的部分。这样,即使链接失效,你的答案仍然是有用的。 - phalteman

0

我也遇到了同样的问题,但是这个页面上的所有内容都不能解决我的问题。我决定更新我的显示适配器。按照以下步骤进行:

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

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


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