本教程针对在Windows10环境下通过Anconda环境,首先安装同时适配Pytorch和Tensorflow的CUDA和cuDNN,并最终完成Pytorch和Tensorflow安装,选择Pytorch2.6.0版本,Tensorflow2.10.0版本,CUDA11.8版本,cuDNN8.2.1版本
前置内容
Pytorch版本
官网:PyTorch
Tensorflow版本
★注意:原生 Windows 上的 GPU 支持仅适用于 2.10 或更早版本,从 TF 2.11 开始,Windows 不支持 CUDA 构建。要在 Windows 上使用 TensorFlow GPU,您需要在 WSL2 中构建/安装 TensorFlow,或者使用 tensorflow-cpu 配合 TensorFlow-DirectML-Plugin。
Version | Python version | Compiler | Build tools | cuDNN | CUDA |
tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.1.1 | 8.1 | 11.2 |
tensorflow_gpu-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.0.0 | 8.1 | 11.2 |
tensorflow_gpu-2.8.0 | 3.7-3.10 | MSVC 2019 | Bazel 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3.7-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | MSVC 2015 update 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
参考连接:Tensorflow与Python、CUDA、cuDNN的版本对应表_tensorflow版本对应-CSDN博客
安装
安装CUDA和cuDNN
Anconda环境
因为Pytorch的2.6.0版本需要python环境在3.9及以上版本,而Tensorflow要支持GPU使用最高只能使用2.10.0版本需要Python版本在3.7-3.10,最终选择python版本3.10
1. 创建虚拟环境
conda create -n py-pt-tf python=3.10.16 -y
2. 激活虚拟环境
conda avtivate py-pt-tf
CUDA安装
1. 查看CUDA支持版本
nvidia-smi
选择的CUDA版本不得超过当前支持的版本,CUDA支持向下兼容
2. 查看cuDNN和CUDA可安装版本
# 查看cuDNN可安装版本
conda search cudnn
# 查看CUDA可安装版本
conda search cudatoolkit
3. 安装cuDNN和CUDA
# 安装cuDNN的8.2.1版本
conda install cudnn=8.2.1
# 安装cuDNN的11.3.1版本
conda install cudatoolkit=11.3.1
安装Tensorflow
通过pip的方式安装trnsorflow==2.10.0,通过https://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学镜像源
pip install trnsorflow==2.10.0 -i https://pypi.mirrors.ustc.edu.cn/simple/
验证Tensorflow
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
可能出现的报错及解决
NumPy版本兼容性问题
在验证时可能会出现NumPy版本兼容性问题因为在创建Anconda环境中NumPy版本过高
A module that was compiled using NumPy 1.x cannot be run in NumPy 2.2.4 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2.
解决:降级 NumPy 到 1.x 版本
pip install "numpy<2" --force-reinstall
安装Pytorch
方式一(很慢-不推荐)
进入Pytorch官网然后选择当前版本的CUDA后通过pip
安装
方式二(推荐)
以CUDA11.8版本为例
- 进入Pytorch官网,选择CUDA版本后在执行命令中将网址https://download.pytorch.org/whl/cu118输入浏览器后按
ctrl+f
依次搜索torch、torchvision、torchaudio
- 进入torch后选择对应CUDA和python版本的torch版本
注:cu
表示CUDA版本,cp
表示python版本
- 右键,复制链接后通过迅雷进行下载
torchvision、torchaudio
操作一致
验证Pytorch
import torch
print(torch.cuda.is_available()) # 由于CUDA版本暂不兼容,此时为Flase
至此已在python版本为3.10.16上完成了Pytorch和Tensorflow的安装
升级CUDA版本兼容Pytorch
注:此时升级CUDA版本为Pytorch兼容的11.8版本但是不升级cuDNN版本,避免Tensorflow不兼容
# CUDA 11.8(conda-forge 源)
conda install cudatoolkit=11.8.0 -c conda-forge -y
# 强制锁定 cuDNN 版本为 8.2.1(避免自动升级)
conda install cudnn=8.2.1 --freeze-installed -c conda-forge -y
验证
import torch
import tensorflow as tf
# 验证Pytorch
print(torch.cuda.is_available()) # True
# 验证Tensorflow
print(tf.config.list_physical_devices('GPU'))