我在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的任何想法?
答案 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。