Tensorflow 在 GPU 上不 运行
Tensorflow not running on GPU
我已经花了相当多的时间来研究堆栈溢出问题并寻找答案,但找不到任何东西
大家好,
我正在 运行宁 Tensorflow 与 Keras 在上面。
我 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))
这就是我得到的:
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\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\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\tensorflow\core\common_runtime\simple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22. 28.]
[ 49. 64.]]
这对我来说表明出于某种原因我 运行正在使用我的 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())
这就是我得到的
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]
还有很多这样的警告
2017-06-29 17:32:45.401429: W c:\tf_jenkins\home\workspace\release-win\m\windows\py\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.
编辑 2
试过运行宁
pip3 install --upgrade tensorflow-gpu
然后我得到
Requirement already up-to-date: tensorflow-gpu in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages
Requirement already up-to-date: markdown==2.2.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from protobuf>=3.2.0->tensorflow-gpu)
已解决:
检查评论以获取解决方案。
感谢所有帮助过的人!
我是新手,非常感谢任何帮助!
谢谢。
要检查哪些设备可用于 TensorFlow,您可以使用它并查看 GPU 卡是否可用:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
编辑
此外,如果您使用 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
即使通过 pip 正确安装了 tensorflow-gpu,我仍然无法获得 GPU 支持。我的问题是我已经安装了 tensorflow 1.5 和 CUDA 9.1(默认版本 Nvidia 指示您),而预编译的 tensorflow 1.5 适用于 <= 9.0 的 CUDA 版本。这是 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
这听起来可能很愚蠢,但请尝试重新启动。它帮助了我和 GitHub 中的其他一些人。
对我来说,以下方法有效。
我使用的是 conda 环境,因为 python 环境意味着设置 LD_LIBRARY_PATH
并手动安装 Cuda,这又是一团糟。
在提到的 blog 中,他已经在 conda 中安装了 cudatoolkit
和 cudann
,然后安装了 tensorflow-gpu
,这解决了问题。
P.S,据我所知,cudatoolkit and cudann
在让你的代码 运行 在 tensorflow-gpu 上发挥重要作用。
如果您碰巧使用 Anaconda 来管理您的环境 => 卸载所有现有版本的 tensorflow
pip uninstall tensorflow
pip3 uninstall tensorflow
使用 conda 安装 tensorflow-gpu
conda install tensorflow-gpu
如果您不介意从一个新环境开始,那么最简单的方法是不用
conda create --name tf_gpu tensorflow-gpu
创建一个名为 tf_gpu 并安装了 tensorflow gpu 的新 conda 环境
我运行陷入了类似的问题
我有以下版本的张量流库。
tensorboard 2.4.1 pyhd8ed1ab_1 conda-forge
tensorboard-plugin-wit 1.8.0 pyh44b312d_0 conda-forge
tensorflow 2.4.1 py39hf3d152e_0 conda-forge
tensorflow-base 2.4.1 py39h23a8cbf_0 conda-forge
tensorflow-estimator 2.4.0 pyh9656e83_0 conda-forge
tensorflow-gpu 2.4.1 h30adc30_0
在另一台能够使用 GPU 的机器上安装了相同版本的库。 Cuda 工具包版本和驱动程序版本在两台机器(工作的机器和不工作的机器)中都是相同的。
原来是tensorflow-gpu=2.4.1兼容python3.8.10版的原因。
将我的 python 版本更改为 3.8.10 并保持所有其他内容不变对我有用!
如果您在 gpu 上使用 运行 tensorflow 时遇到问题,您应该检查是否安装了正确版本的 cuda 和 cuDNN。版本应与 here 完全相同。例如对于 tensorflow v2.8.0
你应该有 cuda v11.2 (not newer)
和 cuDNN v8.1
.
此外,您应该将 cuda /bin
文件夹和 /libnvvp
添加到路径(对于 windows)。
此答案基于本教程 Tensorflow 2021 install tutorial。如果仍然无法运行,请检查是否缺少某些步骤。
我已经花了相当多的时间来研究堆栈溢出问题并寻找答案,但找不到任何东西
大家好,
我正在 运行宁 Tensorflow 与 Keras 在上面。 我 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))
这就是我得到的:
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\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\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\tensorflow\core\common_runtime\simple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22. 28.]
[ 49. 64.]]
这对我来说表明出于某种原因我 运行正在使用我的 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())
这就是我得到的
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]
还有很多这样的警告
2017-06-29 17:32:45.401429: W c:\tf_jenkins\home\workspace\release-win\m\windows\py\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.
编辑 2
试过运行宁
pip3 install --upgrade tensorflow-gpu
然后我得到
Requirement already up-to-date: tensorflow-gpu in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages
Requirement already up-to-date: markdown==2.2.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages (from protobuf>=3.2.0->tensorflow-gpu)
已解决: 检查评论以获取解决方案。 感谢所有帮助过的人!
我是新手,非常感谢任何帮助! 谢谢。
要检查哪些设备可用于 TensorFlow,您可以使用它并查看 GPU 卡是否可用:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
编辑 此外,如果您使用 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
即使通过 pip 正确安装了 tensorflow-gpu,我仍然无法获得 GPU 支持。我的问题是我已经安装了 tensorflow 1.5 和 CUDA 9.1(默认版本 Nvidia 指示您),而预编译的 tensorflow 1.5 适用于 <= 9.0 的 CUDA 版本。这是 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
这听起来可能很愚蠢,但请尝试重新启动。它帮助了我和 GitHub 中的其他一些人。
对我来说,以下方法有效。
我使用的是 conda 环境,因为 python 环境意味着设置 LD_LIBRARY_PATH
并手动安装 Cuda,这又是一团糟。
在提到的 blog 中,他已经在 conda 中安装了 cudatoolkit
和 cudann
,然后安装了 tensorflow-gpu
,这解决了问题。
P.S,据我所知,cudatoolkit and cudann
在让你的代码 运行 在 tensorflow-gpu 上发挥重要作用。
如果您碰巧使用 Anaconda 来管理您的环境 => 卸载所有现有版本的 tensorflow
pip uninstall tensorflow
pip3 uninstall tensorflow
使用 conda 安装 tensorflow-gpu
conda install tensorflow-gpu
如果您不介意从一个新环境开始,那么最简单的方法是不用
conda create --name tf_gpu tensorflow-gpu
创建一个名为 tf_gpu 并安装了 tensorflow gpu 的新 conda 环境
我运行陷入了类似的问题 我有以下版本的张量流库。
tensorboard 2.4.1 pyhd8ed1ab_1 conda-forge
tensorboard-plugin-wit 1.8.0 pyh44b312d_0 conda-forge
tensorflow 2.4.1 py39hf3d152e_0 conda-forge
tensorflow-base 2.4.1 py39h23a8cbf_0 conda-forge
tensorflow-estimator 2.4.0 pyh9656e83_0 conda-forge
tensorflow-gpu 2.4.1 h30adc30_0
在另一台能够使用 GPU 的机器上安装了相同版本的库。 Cuda 工具包版本和驱动程序版本在两台机器(工作的机器和不工作的机器)中都是相同的。
原来是tensorflow-gpu=2.4.1兼容python3.8.10版的原因。 将我的 python 版本更改为 3.8.10 并保持所有其他内容不变对我有用!
如果您在 gpu 上使用 运行 tensorflow 时遇到问题,您应该检查是否安装了正确版本的 cuda 和 cuDNN。版本应与 here 完全相同。例如对于 tensorflow v2.8.0
你应该有 cuda v11.2 (not newer)
和 cuDNN v8.1
.
此外,您应该将 cuda /bin
文件夹和 /libnvvp
添加到路径(对于 windows)。
此答案基于本教程 Tensorflow 2021 install tutorial。如果仍然无法运行,请检查是否缺少某些步骤。