tensorflow-gpu 1.8.0 conda软件包无法访问GPU

时间:2018-07-12 03:25:45

标签: tensorflow gpu

我在Ubuntu 16.04.4的conda环境中安装了tensorflow和tensorflow-gpu 1.8.0 conda(不是pip)软件包:

conda list t.*flow
# packages in environment at /home/lebedov/miniconda3/envs/TF: 
#
# Name                    Version                   Build  Channel
_tflow_180_select         1.0                         gpu  
tensorflow                1.8.0                    py36_1    conda-forge
tensorflow-gpu            1.8.0                h7b35bdc_0 

我的系统上安装了CUDA 9.0,该系统具有Quadro M2200 GPU。我可以看到nvidia-smi输出中列出了GPU,也可以使用其他深度学习框架(例如PyTorch 0.4.0)访问GPU,但是由于某些原因,TensorFlow似乎看不到它:

Python 3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:39:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import tensorflow as tf
   ...: sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
2018-07-11 23:21:11.827064: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Device mapping: no known devices.
2018-07-11 23:21:11.827942: I tensorflow/core/common_runtime/direct_session.cc:284] Device mapping:

但是,如果我降级到tensorflow-gpu 1.7.0,则可以看到GPU。关于为何TensorFlow 1.8.0无法检测到GPU的任何想法?

2 个答案:

答案 0 :(得分:1)

Anaconda的tensorflow 1.8.0软件包似乎正确支持GPU,但是conda-forge的软件包不支持。参见this issue

答案 1 :(得分:1)

我也有类似的实例,其中tensorflow-gpu不会在默认情况下运行。

对于我来说,我只是通过卸载tensorflow并仅保留tensorflow-gpu来解决了它。这样,它将始终与GPU一起运行,因为没有其他选择。

就兼容性而言,我建议使用新的conda安装tensorflow-gpu的方式,该方式将自动为您安装相关的cudnn文件。代码如下:

conda create -n [EnvironmentName] python = 3.6

conda激活[EnvironmentName]

conda install -c conda-forge tensorflow-gpu == 1.14

它将评估您需要哪个版本(CUDA,CUDNN等),并将其直接下载并安装到您的环境中。然后从此环境运行python文件。

事后请使用“ conda list”进行检查,以确保为您安装了tensorflow-gpu。