Tensorflow未在GPU上运行

Goo*_*ose 25 nvidia keras tensorflow cudnn

我已经花了相当多的时间在堆栈溢出上挖掘,否则寻找答案,但找不到任何东西

大家好,

我正在使用Keras运行Tensorflow.我90%肯定我安装了Tensorflow GPU,有没有办法检查我做了哪个安装?

我试图从Jupyter笔记本运行一些CNN模型,我注意到Keras在CPU上运行模型(检查任务管理器,CPU为100%).

我尝试从tensorflow网站运行此代码:

# Creates a graph.
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)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.783183: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0
b: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.784779: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] b: (Const)/job:localhost/replica:0/task:0/cpu:0
a: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.786128: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22.  28.]
 [ 49.  64.]]
Run Code Online (Sandbox Code Playgroud)

对我来说,显示我正在运行我的CPU,出于某种原因.

我有一个GTX1050(驱动程序版本382.53),我安装了CUDA和Cudnn,并且没有任何问题安装了tensorflow.我也安装了Visual Studio 2015,因为它被列为兼容版本.

我记得CUDA提到了一些关于安装了不兼容驱动程序的问题,但是如果我没记错的话,CUDA应该已经安装了自己的驱动程序.

编辑: 我运行了这些命令来列出可用的设备

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Run Code Online (Sandbox Code Playgroud)

这就是我得到的

[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]
Run Code Online (Sandbox Code Playgroud)

还有很多像这样的警告

2017-06-29 17:32:45.401429: W c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
Run Code Online (Sandbox Code Playgroud)

编辑2

试过跑

pip3 install --upgrade tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)

我明白了

Requirement already up-to-date: tensorflow-gpu in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages
Requirement already up-to-date: markdown==2.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from protobuf>=3.2.0->tensorflow-gpu)
Run Code Online (Sandbox Code Playgroud)

解决: 检查注释的解决方案.感谢所有帮助过的人!

我是新手,所以任何帮助都非常感谢!谢谢.

pfm*_*pfm 21

要检查TensorFlow可用的设备,您可以使用它并查看GPU卡是否可用:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Run Code Online (Sandbox Code Playgroud)

编辑此外,如果您使用TensorFlow Cuda版本,您应该看到这种日志:

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so.*.* locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.*.*  locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so.*.*  locally
Run Code Online (Sandbox Code Playgroud)


QtR*_*RoS 9

这可能听起来很愚蠢,但尝试重启.它帮助我和GitHub中的其他人.

  • 同样在这里.WTF.经过两天的挣扎,一次重启帮助:| (3认同)
  • 我爱你。就我而言,这可能是由于将驱动程序从 X 更改为 NVidia 后没有重新启动。 (2认同)
  • 我使用TensorFlow GPU已有几个月,突然间它停止使用GPU。重启解决了。谢谢。 (2认同)

mbo*_*oss 6

即使在通过pip正确安装tensorflow-gpu之后,我仍然无法获得GPU支持.我的问题是我安装了tensorflow 1.5和CUDA 9.1(默认版本Nvidia指示你),而预编译的tensorflow 1.5适用于CUDA版本<= 9.0.这是nvidia网站上的下载页面,以获得正确的CUDA 9.0:

https://developer.nvidia.com/cuda-90-download-archive

另外,请确保将您的cuDNN更新为与CUDA 9.0兼容的版本 https://developer.nvidia.com/cudnn https://developer.nvidia.com/rdp/cudnn-download