尽管安装了tensorflow-gpu,但GPU不用于计算

时间:2017-05-06 16:54:27

标签: tensorflow machine-learning keras anaconda gpu

我的电脑安装了以下软件:Anaconda(3),TensorFlow(GPU)和Keras。 有两个Anaconda虚拟环境 - 一个用于TensorFlow for Python 2.7,另一个用于3.5,两个GPU版本,installed according to the TF instructions。 (我之前在一个单独的环境中安装了CPU版本的TensorFlow,但我已将其删除。)

当我运行以下内容时:

source activate tensorflow-gpu-3.5
python code.py

并检查nvidia-smi它仅显示Python的3MiB GPU内存使用情况,因此看起来GPU不用于计算。 (code.py是一个简单的深度Q学习算法,用Keras实现)

任何想法可能出错?

4 个答案:

答案 0 :(得分:4)

调试这些问题的一个好方法是检查哪些操作已分配给哪些设备。

您可以通过将配置参数传递给会话来检查:

session = tf.Session(config=tf.ConfigProto(log_device_placement=True))

当您运行应用程序时,您将看到一些输出,指示正在使用哪些设备。

您可以在此处找到更多信息: https://www.tensorflow.org/tutorials/using_gpu

答案 1 :(得分:1)

我的GPU没有运行的原因是因为CuDNN的安装中断,更准确地说库和源来自不同版本的CuDNN。

已修复the following piece of advice.

答案 2 :(得分:0)

Windows上的TensorFlow

我花了几个小时来修复Windows上的TensorFlow安装问题,所以这里是摘要:

检查TensorFlow-gpu是否正常工作(使用此代码):

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)
with tf.Session() as sess:
    print(sess.run(c))

检查可用CPU或GPU列表(使用此代码):

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

if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

使用CUDA和cuDNN在Windows上安装Tensorflow GPU

指南概述

  • 在计算机上安装Nvidia的卡以及驱动程序
  • 下载&安装CUDA
  • 下载& "安装" cuDNN
  • 卸载Tensorflow,安装Tensorflow GPU
  • 更新系统上的%PATH%
  • 验证安装

指南完整详情

确定

  • 你已经卸载了tensorflow并且你已经安装了tensorflow-gpu以便完成任务。
  • 根据您的项目设置从pip和conda environement卸载tensorflow并仅安装tensorflow-gpu
  • 设置PATH变量后,请务必注销或重启系统。

希望有用:))

答案 3 :(得分:0)

这是一个棘手的问题,几乎就像计算机将使用任何可能的借口还原为CPU一样。为确保Tensoflow,目前正在使用keras和pytorch,请参见https://stackoverflow.com/a/53244520/420400