为啥在 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.243cudnn-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.243cudnn-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 的依赖列表,发现cudatoolkitcudnn 包丢失了。由于 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

上面的命令将列出以下要安装的包。出于我们的目的,请注意cudatoolkitcudnn 的列出方式

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

conda安装tensorflow

conda安装tensorflow总结

观点 | 别再使用pip安装TensorFlow了!用conda吧~

国内源升级tensorflow2和tensorflow probability