在 Anaconda 中安装 cuDNN for TensorFlow v2.12 时未找到匹配的发行版

Vas*_*ras 11 python-3.x anaconda tensorflow cudnn

我尝试使用Python 3.9.16在 Anaconda 中安装 TensorFlow v2.12 ,并使用pip v23.0.1在 Windows 10操作系统中安装 TensorFlow v2.12 。我的 GPU (RTX4080) 需要 Tensforflow v2.12,并且只有这个版本适用于我的 GPU,因为支持 Cuda Toolkit v11.8,这是支持 Ada Lovelace GPU 的最旧版本。

适用于Windows操作系统的官方tensorflow.org提供了以下安装说明。

  1. conda install -c conda-forge cudatoolkit=11.8.0
  2. python3 -m pip install nvidia-cudnn-cu11==8.6.0.163 tensorflow==2.12.*
  3. CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
  4. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib

验证安装:

  1. python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

通过上述步骤,Cuda Toolkit 11.8.0Tensorflow 2.12安装没有任何问题。但是,如果我尝试安装cuDNN 8.6.0.163,未安装,并给出以下结果。

Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
ERROR: Could not find a version that satisfies the requirement nvidia-cudnn-cu11==8.6.0.163 (from versions: 0.0.1.dev5, 2021.10.26, 2021.11.18, 2021.12.8, 2022.1.13, 2022.4.2, 2022.5.19)
ERROR: No matching distribution found for nvidia-cudnn-cu11==8.6.0.163
Run Code Online (Sandbox Code Playgroud)

出了什么问题?有关于如何安装 cuDNN 8.6.0.163 的任何想法吗?

我尝试通过以下方式安装cuDNN 8.6.0.163 ,但都给出了相同的结果:

  • python -m pip install nvidia-cudnn-cu11==8.6.0.163 (我的conda环境中的python是v3.9.16,所以python3命令不存在,它与python相同。我已经检查过python --version:)
  • pip install nvidia-cudnn-cu11==8.6.0.163
  • python -m pip install nvidia-cudnn-cu11==8.6.0.163 --no-cache-dir
  • python -m pip install nvidia-cudnn-cu11==8.6.0.163 --proxy="xxx.xxx.xxx.xxx:xxxx" (其中xxx.xxx.xxx.xxx:xxxx一些代理IP和相应的端口)

另外,我已经安装了 'nvidia-pyindex': pip install nvidia-pyindex,但这并不能解决问题。

毕竟,我尝试在Windows环境中安装cuDNN 8.6.0.163版本,并且我已经设置了正确的环境变量,但是Anaconda中的Tenrosflow没有看到,等等: print(tf.config.list_physical_devices('GPU'))

不返回任何内容:[ ]

从第 3 步开始,我检查了这一点:

python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)

其中返回:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'nvidia'
Run Code Online (Sandbox Code Playgroud)

在 PowerShell 中:

nvidia-smi返回这个:

“NVIDIA-SMI 531.41 | 驱动程序版本:531.41 | CUDA 版本:12.1”

nvcc -V返回这个:

nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2022 NVIDIA Corporation 构建于 Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022 Cuda 编译工具,版本 11.8,V11.8.89 构建 cuda_11.8.r11.8/compiler.31833905_0

小智 3

这里的问题是您正在尝试在 Windows 操作系统中获得 GPU 支持TensorFlow 2.12。但 TensorFlow 在本机 Win 操作系统中的 TF 2.10 版本之后停止了 GPU 支持,根据此文档,其中提到:

TensorFlow 2.10 是在本机 Windows 上支持 GPU 的最后一个 TensorFlow 版本。从 TensorFlow 2.11 开始,您需要在 WSL2 中安装 TensorFlow,或者安装 tensorflow-cpu,并且可以选择尝试 TensorFlow-DirectML-Plugin

因此,请通过降级TensorFlow 2.10并安装兼容的重试CUDA 11.2,如本测试构建配置cuDNN 8.1中所述,或者可以使用WSL2directML插件在您的系统中获得对 Tensorflow 的 GPU 支持。