为啥在 conda 安装后 Tensorflow 无法识别我的 GPU?
Posted
技术标签:
【中文标题】为啥在 conda 安装后 Tensorflow 无法识别我的 GPU?【英文标题】:Why is Tensorflow not recognizing my GPU after conda install?为什么在 conda 安装后 Tensorflow 无法识别我的 GPU? 【发布时间】:2021-03-24 03:41:50 【问题描述】:我是深度学习的新手,过去 2 天我一直在尝试在我的电脑上安装 tensorflow-gpu 版本,但徒劳无功。我避免安装 CUDA 和 cuDNN 驱动程序,因为由于许多兼容性问题,一些在线论坛不推荐它。由于我之前已经在使用 python 的 conda 发行版,所以我选择了conda install -c anaconda tensorflow-gpu
,在他们的官方网站上写着:https://anaconda.org/anaconda/tensorflow-gpu。
然而,即使在新的虚拟环境中安装了 gpu 版本(为了避免与基础环境中安装的 pip 库发生潜在冲突),tensorflow 似乎出于某种神秘原因甚至无法识别我的 GPU。
我运行的一些代码 sn-ps(在 anaconda 提示符中)以了解它无法识别我的 GPU:-
1.
>>>from tensorflow.python.client import device_lib
>>>print(device_lib.list_local_devices())
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality
incarnation: 7692219132769779763
]
如您所见,它完全忽略了 GPU。
2.
>>>tf.debugging.set_log_device_placement(True)
>>>a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
2020-12-13 10:11:30.902956: I tensorflow/core/platform/cpu_feature_guard.cc:142] This
TensorFlow
binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU
instructions in performance-critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
>>>b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
>>>c = tf.matmul(a, b)
>>>print(c)
tf.Tensor(
[[22. 28.]
[49. 64.]], shape=(2, 2), dtype=float32)
在这里,它应该通过显示Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0
(如这里写的:https://www.tensorflow.org/guide/gpu)来表明它使用 GPU 运行,但没有类似的东西存在。我也不确定第二行之后的消息是什么意思。
我也在网上搜索了几个解决方案,包括这里,但几乎所有的问题都与第一种手动安装方法有关,因为大家都推荐这种方法,所以我还没有尝试过。
我不再使用 cmd,因为在从基本 env 卸载 tensorflow-cpu 并重新安装后,环境变量以某种方式搞砸了,它与 anaconda 提示符但不是 cmd 完美配合。这是一个单独的问题(也很普遍),但我提到了它,以防它在这里发挥作用。我在一个全新的虚拟环境中安装了 gpu 版本,以确保安装干净,据我所知,路径变量只需要设置用于手动安装 CUDA 和 cuDNN 库。
我使用的卡:-(启用了 CUDA)
C:\WINDOWS\system32>wmic path win32_VideoController get name
Name
NVIDIA GeForce 940MX
Intel(R) HD Graphics 620
我目前使用的 Tensorflow 和 python 版本:-
>>> import tensorflow as tf
>>> tf.__version__
'2.3.0'
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
系统信息:Windows 10 Home、64 位操作系统、基于 x64 的处理器。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
抱歉格式错误,*** 不允许我在没有“缩进”终端代码的情况下发布问题。 我遇到了同样的问题。我发现,当我执行conda list
时,我发现即使安装了 tensorflow-gpu,也没有为我安装 cudatoolkit。我还看到 cudnn 没有安装。我现在正在尝试conda install
这些。当我执行conda install cudnn
时,它要求我从我刚刚安装的 cudatoolkit 11 降级到 cudatoolkit 10。也许 conda create -n tf-gpu tensorflow-gpu
对于最近的版本(例如 cudatoolkit 11)来说效果不佳。
@user3731622 是的,我也不得不降级。看起来 conda 还不支持较新的 Tf 和 CUDA 库
我能够使用 conda 安装 TensorFlow 2.1,然后使用 pip 安装 TensorFlow 2.4。我不喜欢混合使用 conda 和 pip,但这是让新版本 TensorFlow 运行的一种方式。
【参考方案1】:
您需要安装 cuDNN 和 CUDA 工具包才能使用您的 GPU。
首先检查兼容版本here。
cuDNN 可以在here 找到(需要免费帐户)。
CUDA 工具包可以在here找到。
再次,在安装前检查兼容版本。较新的版本不向后兼容。
【讨论】:
但是当我用 conda 安装 tensorflow-gpu 时,这些不是自动安装的吗? 不,这些是不特定于 python 的低级库。 是的,但我在这里看到不需要外部安装:towardsdatascience.com/… 我不使用 conda,所以我不确定,但它确实说“安装 tensorflow-gpu 所需的所有包,包括 cuda 和 cuDNN 兼容版本”不是 cuda 或 cuDNN 本身。这可能是一种管理以前安装的非 GPU 包的方法。 这是不正确的。 Conda 将从 CUDA 工具包和 CNN 工具包中安装所有必要的运行时组件。它不会安装受支持的 NVIDIA GPU 驱动程序【参考方案2】:我看到你的 GPU 有 compute capability 5.0 没关系,TensorFlow 应该喜欢它。因此,我假设在环境设置期间出现了问题。请尝试使用以下方法创建新环境:
conda create --name tf_gpu tensorflow-gpu
然后在 tf_gpu 中安装您想要的所有其他软件包并重试。
P.S:在环境中只有一个 TensorFlow 包(gpu 包)非常重要。如果您有多个,则无法保证
import tensorflow as tf
将导入您想要的...
【讨论】:
【参考方案3】:我也无法(还)让 TF 2.3.0 识别我的 Nvidia Quadro Pro 620 GPU。
注意:我在这台 PC(windows Pro)上还有 2 个其他“环境”,全部通过 Anaconda 安装:
-
Python 3.7.8 TF 2.0.0... 识别(并使用)Nvidia GPU
Python 3.6.9 TF 2.1.0... 识别(并使用)Nvidia GPU
Python 3.8.6 TF 2.3.0... 看不到 GPU
我的机器有 Cuda 11.1; cuDNN 8.0.5
我的下一个想法是考虑在 TF = 2.3.0 的第三个配置中将 Python 从 3.8.6 降级到 3.7.8
史蒂夫
【讨论】:
【参考方案4】:2021 年 8 月 Conda 安装现在可能正在运行,根据下面 cmets 中的 @ComputerScientist 的说法,conda install tensorflow-gpu==2.4.1
将提供 cudatoolkit-10.1.243
和 cudnn-7.6.5
以下内容写于 2021 年 1 月,已过时
目前conda install tensorflow-gpu
安装 tensorflow v2.3.0 并且不安装 conda cudnn 或 cudatoolkit 包。手动安装它们(例如使用conda install cudatoolkit=10.1
)似乎也不能解决问题。
解决方案是安装较早版本的 tensorflow,它会安装 cudnn 和 cudatoolkit,然后使用 pip 升级
conda install tensorflow-gpu=2.1
pip install tensorflow-gpu==2.3.1
(2.4.0 使用 cuda 11.0 和 cudnn 8.0,但是截至 2020 年 12 月 16 日 cudnn 8.0 不在 anaconda 中)
编辑:另请参阅@GZ0 的答案,该答案链接到 github 讨论与单行解决方案
【讨论】:
感谢@geometrikal 这对我有用! 一段时间以来一直在尝试解决这个问题。谢谢! @TusharAgarwal 尝试 conda create -n tf_231 python=3.7,conda activate tf_231,conda install tensorflow-gpu=2.1,pip install tensorflow-gpu==2.3.1。请注意,可能不需要“-gpu” @TusharAgarwal 请参阅this post 了解解决方法。 @geometrikal 这个答案可能已经过时了。截至 2021 年 8 月,当我在新的 Ubuntu 18.04 机器和新的 conda env 上执行conda install tensorflow-gpu==2.4.1
时,我的 conda env 中安装了 cudatoolkit-10.1.243
和 cudnn-7.6.5
。【参考方案5】:
@geometrikal 解决方案几乎对我有用。但是在使用 conda 安装 tensorflow-gpu 和使用 pip 安装 tensorflow 2.3 之间,我需要卸载包 tensorflow-gpu 的 tensorflow 部分以避免 pip 的一致性警告。 Conda 会卸载整个软件包。我知道Conda does not recommend mixing pip with conda,但这是行之有效的解决方案,我厌倦了再花一天时间解决这个问题。
conda create -n tfgpu python=3.7
conda activate tfgpu
conda install tensorflow-gpu=2.1
pip uninstall tensorflow
pip uninstall tensorflow-estimator
pip uninstall tensorboard
pip uninstall tensorboard-plugin-wit
pip install tensorflow==2.3
pip check
【讨论】:
这个问题是 spyder、jupyter 等安装在基础环境中,无法识别 tensorflow 安装。现在我无法在新的 tensorflow 环境中重新安装每个包。 @samarendrachandanbinduDash 抱歉,我没有使用 spyder 或 jupyter 的经验。我只将 Pycharm 与 conda 结合使用。【参考方案6】:在安装tensorflow-gpu
2.3 期间,Anaconda 在 Windows 10 上自动选择的tensorflow
构建似乎有问题。请找到解决方法here(如果您有 GitHub 帐户,请考虑支持 GitHub 答案)。
仅限 Windows:
Python 3.7:conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py37h936c3e2_0
Python 3.8:conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0
【讨论】:
修复我的问题,谢谢 在第 15 页的一半,我浏览了 TL;DR,我找到了这个?它有效吗?无价之宝! 它在 windows 10 上工作,但在 ubuntu 2.3 上不可用。谢谢!【参考方案7】:使用conda
安装 TensorFlow 始终是管理 TensorFlow 本身以及 CUDA 和 CUDNN 的多版本的更好方法。我最近创建了一个新的 conda 环境并准备安装最新的 TensorFlow。我也遇到了你说的问题。我检查了conda install tensorflow-gpu
的依赖列表,发现cudatoolkit
和cudnn
包丢失了。由于 Anaconda 的 tensorflow-gpu 最新版本是 2.3,我认为这个问题已经被@GZ0 在 GitHub 问题上的回答指出了。
这里我列出下面的输出:
使用conda install tensorflow=2.3
:
PS > conda install tensorflow-gpu=2.3
## Package Plan ##
environment location: C:\Anaconda3\envs\test_cuda_38
added / updated specs:
- tensorflow-gpu=2.3
The following packages will be downloaded:
package | build
---------------------------|-----------------
absl-py-0.12.0 | py38haa95532_0 176 KB
aiohttp-3.7.4 | py38h2bbff1b_1 513 KB
astunparse-1.6.3 | py_0 17 KB
async-timeout-3.0.1 | py38haa95532_0 14 KB
blas-1.0 | mkl 6 KB
blinker-1.4 | py38haa95532_0 23 KB
brotlipy-0.7.0 |py38h2bbff1b_1003 412 KB
cachetools-4.2.1 | pyhd3eb1b0_0 13 KB
cffi-1.14.5 | py38hcd4344a_0 224 KB
chardet-3.0.4 |py38haa95532_1003 194 KB
click-7.1.2 | pyhd3eb1b0_0 64 KB
coverage-5.5 | py38h2bbff1b_2 272 KB
cryptography-3.4.7 | py38h71e12ea_0 643 KB
cython-0.29.23 | py38hd77b12b_0 1.7 MB
gast-0.4.0 | py_0 15 KB
google-auth-1.29.0 | pyhd3eb1b0_0 76 KB
google-auth-oauthlib-0.4.4 | pyhd3eb1b0_0 18 KB
google-pasta-0.2.0 | py_0 46 KB
grpcio-1.36.1 | py38hc60d5dd_1 1.7 MB
h5py-2.10.0 | py38h5e291fa_0 841 KB
hdf5-1.10.4 | h7ebc959_0 7.9 MB
icc_rt-2019.0.0 | h0cc432a_1 6.0 MB
idna-2.10 | pyhd3eb1b0_0 52 KB
importlib-metadata-3.10.0 | py38haa95532_0 34 KB
intel-openmp-2021.2.0 | haa95532_616 1.8 MB
keras-applications-1.0.8 | py_1 29 KB
keras-preprocessing-1.1.2 | pyhd3eb1b0_0 35 KB
libprotobuf-3.14.0 | h23ce68f_0 1.9 MB
markdown-3.3.4 | py38haa95532_0 144 KB
mkl-2021.2.0 | haa95532_296 115.5 MB
mkl-service-2.3.0 | py38h2bbff1b_1 49 KB
mkl_fft-1.3.0 | py38h277e83a_2 137 KB
mkl_random-1.2.1 | py38hf11a4ad_2 223 KB
multidict-5.1.0 | py38h2bbff1b_2 61 KB
numpy-1.20.1 | py38h34a8a5c_0 23 KB
numpy-base-1.20.1 | py38haf7ebc8_0 4.2 MB
oauthlib-3.1.0 | py_0 91 KB
opt_einsum-3.1.0 | py_0 54 KB
protobuf-3.14.0 | py38hd77b12b_1 242 KB
pyasn1-0.4.8 | py_0 57 KB
pyasn1-modules-0.2.8 | py_0 72 KB
pycparser-2.20 | py_2 94 KB
pyjwt-1.7.1 | py38_0 48 KB
pyopenssl-20.0.1 | pyhd3eb1b0_1 49 KB
pyreadline-2.1 | py38_1 145 KB
pysocks-1.7.1 | py38haa95532_0 31 KB
requests-2.25.1 | pyhd3eb1b0_0 52 KB
requests-oauthlib-1.3.0 | py_0 23 KB
rsa-4.7.2 | pyhd3eb1b0_1 28 KB
scipy-1.6.2 | py38h66253e8_1 13.0 MB
tensorboard-plugin-wit-1.6.0| py_0 630 KB
tensorflow-2.3.0 |mkl_py38h8557ec7_0 6 KB
tensorflow-base-2.3.0 |eigen_py38h75a453f_0 49.5 MB
tensorflow-estimator-2.3.0 | pyheb71bc4_0 271 KB
termcolor-1.1.0 | py38haa95532_1 9 KB
typing-extensions-3.7.4.3 | hd3eb1b0_0 12 KB
typing_extensions-3.7.4.3 | pyh06a4308_0 28 KB
urllib3-1.26.4 | pyhd3eb1b0_0 105 KB
werkzeug-1.0.1 | pyhd3eb1b0_0 239 KB
win_inet_pton-1.1.0 | py38haa95532_0 35 KB
wrapt-1.12.1 | py38he774522_1 49 KB
yarl-1.6.3 | py38h2bbff1b_0 153 KB
------------------------------------------------------------
Total: 210.0 MB
使用conda install tensorflow=2.1
:
PS > conda install tensorflow-gpu=2.1
## Package Plan ##
environment location: C:\Anaconda3\envs\test_cuda
added / updated specs:
- tensorflow-gpu=2.1
The following packages will be downloaded:
package | build
---------------------------|-----------------
_tflow_select-2.1.0 | gpu 3 KB
absl-py-0.12.0 | py37haa95532_0 175 KB
aiohttp-3.7.4 | py37h2bbff1b_1 507 KB
astor-0.8.1 | py37haa95532_0 47 KB
async-timeout-3.0.1 | py37haa95532_0 14 KB
blas-1.0 | mkl 6 KB
blinker-1.4 | py37haa95532_0 23 KB
brotlipy-0.7.0 |py37h2bbff1b_1003 337 KB
cachetools-4.2.1 | pyhd3eb1b0_0 13 KB
cffi-1.14.5 | py37hcd4344a_0 220 KB
chardet-3.0.4 |py37haa95532_1003 192 KB
click-7.1.2 | pyhd3eb1b0_0 64 KB
coverage-5.5 | py37h2bbff1b_2 273 KB
cryptography-3.4.7 | py37h71e12ea_0 641 KB
cudatoolkit-10.1.243 | h74a9793_0 300.3 MB
cudnn-7.6.5 | cuda10.1_0 179.1 MB
cython-0.29.23 | py37hd77b12b_0 1.7 MB
gast-0.2.2 | py37_0 155 KB
google-auth-1.29.0 | pyhd3eb1b0_0 76 KB
google-auth-oauthlib-0.4.4 | pyhd3eb1b0_0 18 KB
google-pasta-0.2.0 | py_0 46 KB
grpcio-1.36.1 | py37hc60d5dd_1 1.7 MB
h5py-2.10.0 | py37h5e291fa_0 808 KB
hdf5-1.10.4 | h7ebc959_0 7.9 MB
icc_rt-2019.0.0 | h0cc432a_1 6.0 MB
idna-2.10 | pyhd3eb1b0_0 52 KB
importlib-metadata-3.10.0 | py37haa95532_0 34 KB
intel-openmp-2021.2.0 | haa95532_616 1.8 MB
keras-applications-1.0.8 | py_1 29 KB
keras-preprocessing-1.1.2 | pyhd3eb1b0_0 35 KB
libprotobuf-3.14.0 | h23ce68f_0 1.9 MB
markdown-3.3.4 | py37haa95532_0 144 KB
mkl-2021.2.0 | haa95532_296 115.5 MB
mkl-service-2.3.0 | py37h2bbff1b_1 48 KB
mkl_fft-1.3.0 | py37h277e83a_2 133 KB
mkl_random-1.2.1 | py37hf11a4ad_2 214 KB
multidict-5.1.0 | py37h2bbff1b_2 85 KB
numpy-1.20.1 | py37h34a8a5c_0 23 KB
numpy-base-1.20.1 | py37haf7ebc8_0 4.1 MB
oauthlib-3.1.0 | py_0 91 KB
opt_einsum-3.1.0 | py_0 54 KB
protobuf-3.14.0 | py37hd77b12b_1 240 KB
pyasn1-0.4.8 | py_0 57 KB
pyasn1-modules-0.2.8 | py_0 72 KB
pycparser-2.20 | py_2 94 KB
pyjwt-1.7.1 | py37_0 49 KB
pyopenssl-20.0.1 | pyhd3eb1b0_1 49 KB
pyreadline-2.1 | py37_1 143 KB
pysocks-1.7.1 | py37_1 28 KB
requests-2.25.1 | pyhd3eb1b0_0 52 KB
requests-oauthlib-1.3.0 | py_0 23 KB
rsa-4.7.2 | pyhd3eb1b0_1 28 KB
scipy-1.6.2 | py37h66253e8_1 12.8 MB
six-1.15.0 | py37haa95532_0 51 KB
tensorboard-plugin-wit-1.6.0| py_0 630 KB
tensorflow-2.1.0 |gpu_py37h7db9008_0 4 KB
tensorflow-base-2.1.0 |gpu_py37h55f5790_0 105.3 MB
tensorflow-estimator-2.1.0 | pyhd54b08b_0 251 KB
tensorflow-gpu-2.1.0 | h0d30ee6_0 3 KB
termcolor-1.1.0 | py37haa95532_1 9 KB
typing-extensions-3.7.4.3 | hd3eb1b0_0 12 KB
typing_extensions-3.7.4.3 | pyh06a4308_0 28 KB
urllib3-1.26.4 | pyhd3eb1b0_0 105 KB
werkzeug-0.16.1 | py_0 258 KB
win_inet_pton-1.1.0 | py37haa95532_0 35 KB
wrapt-1.12.1 | py37he774522_1 49 KB
yarl-1.6.3 | py37h2bbff1b_0 151 KB
------------------------------------------------------------
Total: 745.0 MB
因此,您可以使用@GZ0 和@geometrikal 的建议在Windows 平台上安装来自Anaconda 的最新版本(v2.3)的tensorflow-gpu,或者仅使用conda install tensorflow-gpu=2.1
以获得最新和正确的环境。
请注意,tensorflow-gpu v2.1 仅支持 3.5-3.7 之间的 Python。
【讨论】:
【参考方案8】:截至 2021 年 8 月,使用 TensorFlow 2.4.1,我相信它似乎在 conda 环境中安装了 CUDA 和 CuDNN。这是我在 Ubuntu 18.04 机器上创建新的 conda env 所做的:
conda create --name tftest python=3.7 -y && conda activate tftest
conda install ipython tensorflow-gpu==2.4.1 -y
上面的命令将列出以下要安装的包。出于我们的目的,请注意cudatoolkit
和cudnn
的列出方式。
The following packages will be downloaded:
package | build
---------------------------|-----------------
_tflow_select-2.1.0 | gpu 2 KB
absl-py-0.13.0 | py37h06a4308_0 173 KB
aiohttp-3.7.4 | py37h27cfd23_1 536 KB
astor-0.8.1 | py37h06a4308_0 47 KB
astunparse-1.6.3 | py_0 17 KB
async-timeout-3.0.1 | py37h06a4308_0 13 KB
attrs-21.2.0 | pyhd3eb1b0_0 46 KB
backcall-0.2.0 | pyhd3eb1b0_0 13 KB
blas-1.0 | mkl 6 KB
blinker-1.4 | py37h06a4308_0 23 KB
brotlipy-0.7.0 |py37h27cfd23_1003 320 KB
c-ares-1.17.1 | h27cfd23_0 108 KB
cachetools-4.2.2 | pyhd3eb1b0_0 13 KB
cffi-1.14.6 | py37h400218f_0 223 KB
chardet-3.0.4 |py37h06a4308_1003 175 KB
charset-normalizer-2.0.4 | pyhd3eb1b0_0 35 KB
click-8.0.1 | pyhd3eb1b0_0 79 KB
coverage-5.5 | py37h27cfd23_2 254 KB
cryptography-3.4.7 | py37hd23ed53_0 904 KB
cudatoolkit-10.1.243 | h6bb024c_0 347.4 MB
cudnn-7.6.5 | cuda10.1_0 179.9 MB
cupti-10.1.168 | 0 1.4 MB
cython-0.29.24 | py37h295c915_0 1.9 MB
decorator-5.0.9 | pyhd3eb1b0_0 12 KB
gast-0.4.0 | pyhd3eb1b0_0 13 KB
google-auth-1.33.0 | pyhd3eb1b0_0 80 KB
google-auth-oauthlib-0.4.4 | pyhd3eb1b0_0 18 KB
google-pasta-0.2.0 | py_0 46 KB
grpcio-1.36.1 | py37h2157cd5_1 1.9 MB
h5py-2.10.0 | py37hd6299e0_1 902 KB
hdf5-1.10.6 | hb1b8bf9_0 3.7 MB
idna-3.2 | pyhd3eb1b0_0 48 KB
importlib-metadata-3.10.0 | py37h06a4308_0 33 KB
intel-openmp-2021.3.0 | h06a4308_3350 1.4 MB
ipython-7.26.0 | py37hb070fc8_0 1005 KB
ipython_genutils-0.2.0 | pyhd3eb1b0_1 27 KB
jedi-0.18.0 | py37h06a4308_1 911 KB
keras-preprocessing-1.1.2 | pyhd3eb1b0_0 35 KB
libgfortran-ng-7.5.0 | ha8ba4b0_17 22 KB
libgfortran4-7.5.0 | ha8ba4b0_17 995 KB
libprotobuf-3.17.2 | h4ff587b_1 2.0 MB
markdown-3.3.4 | py37h06a4308_0 127 KB
matplotlib-inline-0.1.2 | pyhd3eb1b0_2 12 KB
mkl-2021.3.0 | h06a4308_520 141.2 MB
mkl-service-2.4.0 | py37h7f8727e_0 56 KB
mkl_fft-1.3.0 | py37h42c9631_2 170 KB
mkl_random-1.2.2 | py37h51133e4_0 287 KB
multidict-5.1.0 | py37h27cfd23_2 66 KB
numpy-1.20.3 | py37hf144106_0 23 KB
numpy-base-1.20.3 | py37h74d4b33_0 4.5 MB
oauthlib-3.1.1 | pyhd3eb1b0_0 90 KB
opt_einsum-3.3.0 | pyhd3eb1b0_1 57 KB
parso-0.8.2 | pyhd3eb1b0_0 69 KB
pexpect-4.8.0 | pyhd3eb1b0_3 53 KB
pickleshare-0.7.5 | pyhd3eb1b0_1003 13 KB
prompt-toolkit-3.0.17 | pyh06a4308_0 256 KB
protobuf-3.17.2 | py37h295c915_0 319 KB
ptyprocess-0.7.0 | pyhd3eb1b0_2 17 KB
pyasn1-0.4.8 | py_0 57 KB
pyasn1-modules-0.2.8 | py_0 72 KB
pygments-2.10.0 | pyhd3eb1b0_0 725 KB
pyjwt-2.1.0 | py37h06a4308_0 32 KB
pyopenssl-20.0.1 | pyhd3eb1b0_1 49 KB
pysocks-1.7.1 | py37_1 27 KB
python-flatbuffers-1.12 | pyhd3eb1b0_0 24 KB
requests-2.26.0 | pyhd3eb1b0_0 59 KB
requests-oauthlib-1.3.0 | py_0 23 KB
rsa-4.7.2 | pyhd3eb1b0_1 28 KB
scipy-1.6.2 | py37had2a1c9_1 15.5 MB
six-1.16.0 | pyhd3eb1b0_0 18 KB
tensorboard-2.4.0 | pyhc547734_0 8.8 MB
tensorboard-plugin-wit-1.6.0| py_0 630 KB
tensorflow-2.4.1 |gpu_py37ha2e99fa_0 4 KB
tensorflow-base-2.4.1 |gpu_py37h29c2da4_0 195.2 MB
tensorflow-estimator-2.5.0 | pyh7b7c402_0 267 KB
tensorflow-gpu-2.4.1 | h30adc30_0 3 KB
termcolor-1.1.0 | py37h06a4308_1 9 KB
traitlets-5.0.5 | pyhd3eb1b0_0 81 KB
typing-extensions-3.10.0.0 | hd3eb1b0_0 8 KB
typing_extensions-3.10.0.0 | pyh06a4308_0 27 KB
urllib3-1.26.6 | pyhd3eb1b0_1 112 KB
wcwidth-0.2.5 | py_0 29 KB
werkzeug-1.0.1 | pyhd3eb1b0_0 239 KB
wrapt-1.12.1 | py37h7b6447c_1 49 KB
yarl-1.6.3 | py37h27cfd23_0 133 KB
zipp-3.5.0 | pyhd3eb1b0_0 13 KB
------------------------------------------------------------
Total: 915.9 MB
接下来,运行ipython
并尝试:
In [1]: import tensorflow as tf
2021-08-29 12:26:36.582384: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
In [2]: tf.config.list_physical_devices('GPU')
2021-08-29 12:26:48.676151: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set
2021-08-29 12:26:48.679894: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1
2021-08-29 12:26:48.975002: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties:
pciBusID: 0000:04:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.979341: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 1 with properties:
pciBusID: 0000:08:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.981747: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 2 with properties:
pciBusID: 0000:09:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.990002: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 3 with properties:
pciBusID: 0000:85:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.992488: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 4 with properties:
pciBusID: 0000:89:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.992523: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
2021-08-29 12:26:49.312793: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10
2021-08-29 12:26:49.312907: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10
2021-08-29 12:26:49.388961: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10
2021-08-29 12:26:49.413946: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10
2021-08-29 12:26:49.535055: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10
2021-08-29 12:26:49.563142: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10
2021-08-29 12:26:50.009291: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7
2021-08-29 12:26:50.051301: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0, 1, 2, 3, 4
Out[2]:
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU'),
PhysicalDevice(name='/physical_device:GPU:2', device_type='GPU'),
PhysicalDevice(name='/physical_device:GPU:3', device_type='GPU'),
PhysicalDevice(name='/physical_device:GPU:4', device_type='GPU')]
In [3]: tf.test.is_built_with_cuda()
Out[3]: True
这台机器有5个GPU,所以上面的输出是正确的。
我实际上不确定为什么要安装 CUDA 10.1 和 CuDNN 7.6.5,因为 from Google's TF compatibility chart 似乎 2.4.0(可能是 2.4.1?)可以与 CUDA 11.0 和 CuDNN 8 一起使用。如果有人对此有见解,请随时加入...
【讨论】:
这很简单,TF 2.4.0 是由 Tensorflow 开发人员使用 CUDA 11.0 和 cuDNN 8.0 构建的。 Anaconda 中存在的那个是由 Anaconda 开发人员(或社区成员)使用 CUDA 10.1 和 cuDNN 7.6.5 构建的。另请注意,如果您自己构建 TensorFlow GPU,则可以使用不同版本的 CUDA 和 cuDNN。【参考方案9】:以下步骤对我有用:
执行与视频中相同的操作。 https://www.youtube.com/watch?v=r31jnE7pR-g
还要安装视频中缺少的 tensorflow 估算器。在图片中你可以看到我的环境对我有用。
my environment
也许您必须将版本更改为相同的版本。 现在进入 Visual Code 并使用您之前创建的 anaconda 环境运行您的代码。见下图。
select your environment
就我而言,它是 tf_env,我创建并命名的。
尝试运行您的代码。如果 Visual Code 显示缺少某些内容,请尝试使用 anaconda 终端安装它。点击“播放”按钮启动终端。
play Button terminal
当您进行更改时,也关闭并打开 Visual Code,有时也是 anaconda。现在试试下面的代码。
> print("Num GPU: ", len(tf.config.list_physical_devices("GPU")))
>
> print(tf.test.is_gpu_available()) print(tf.test.is_built_with_cuda())
> OUTPUT
> Num GPU: 1
> WARNING:tensorflow:From <ipython-input-2-8748de971110>:3:
> is_gpu_available (from tensorflow.python.framework.test_util) is
> deprecated and will be removed in a future version. Instructions for
> updating: Use `tf.config.list_physical_devices('GPU')` instead.
> True
> True
如果您的输出相同,则一切正常。现在,当您训练模型时,您应该会看到 gpu 在任务管理器中运行。
希望对大家有帮助:)
【讨论】:
请务必包含您所包含链接的相关元素,否则您的答案将作为“仅链接答案”被删除。请记住,此视频和您提供的所有其他链接可能会消失以上是关于为啥在 conda 安装后 Tensorflow 无法识别我的 GPU?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我需要另一个来自 tensorflow 的 conda 环境?
在同一个conda环境下安装tensorflow和pytorch