我的电脑安装了以下软件: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实现)
任何想法可能出错?
答案 0 :(得分:4)
调试这些问题的一个好方法是检查哪些操作已分配给哪些设备。
您可以通过将配置参数传递给会话来检查:
session = tf.Session(config=tf.ConfigProto(log_device_placement=True))
当您运行应用程序时,您将看到一些输出,指示正在使用哪些设备。
您可以在此处找到更多信息: https://www.tensorflow.org/tutorials/using_gpu
答案 1 :(得分:1)
我的GPU没有运行的原因是因为CuDNN的安装中断,更准确地说库和源来自不同版本的CuDNN。
答案 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
指南概述
指南完整详情
确定
希望有用:))
答案 3 :(得分:0)
这是一个棘手的问题,几乎就像计算机将使用任何可能的借口还原为CPU一样。为确保Tensoflow,目前正在使用keras和pytorch,请参见https://stackoverflow.com/a/53244520/420400