list_local_device tensorflow不检测gpu

时间:2017-12-18 15:09:37

标签: tensorflow keras tensorflow-gpu

  1. 有没有办法检查我是否安装了GPU版本Tensorflow
  2. !NVIDIA-SMI
  3. Mon Dec 18 23:58:01 2017

    +-----------------------------------------------------------------------------+
    | 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

6 个答案:

答案 0 :(得分:2)

pip install tensorflow-gpuconda install tensorflow-gpu用于tensorflow的gpu版本。如果使用keras-gpu conda install -c anaconda keras-gpu命令,将自动安装tensorflow-gpu版本。在执行这些命令之前,请确保已卸载常规的tensorflow。

答案 1 :(得分: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()

答案 2 :(得分:0)

您可能需要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

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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