安装的版本:
python=3.7
CUDA=11.3.1
cuDNN=8.2.1
Torch=1.11.0
TensorFlow-gpu=2.6.0
TensorFlow、Torch的cpu版本安装简单,但是gpu版本安装有诸多限制,容易出很多问题。
在此记录一下解决方法。
GPU版本的库运行需要基于硬件和软件的双重限制:
1、硬件:电脑要有Nvida的显卡,AMD的显卡是不支持的;
2、软件:需要安装与TensorFlow,Torch版本相对应的CUDA、cuDNN
需要注意的是:CUDA版本是向下兼容的,即使说高版本是兼容低版本的,但是最好是要相对应,版本差别不大才可以。
我自己理解是:自己电脑所支持的最高cuda版本 > anaconda中安装的cuda版本 > anaconda中安装的cuDNN版本(意思是安装的cuda版本对应的cuDNN版本;cuDNN与CUDA对应版本查询:cuDNN Archive | NVIDIA Developer)
例如:我的电脑支持最高cuda版本=11.5;
anaconda安装的cuda版本=11.3;
(比如:cuda=11.3 与 cuDNN=8.1 对应;cuda=11.2 与 cuDNN=8.0 对应)
那么anaconda安装的cuDNN版本可以是8.1或者是8.0(因为高版本的cuda=11.3兼容cuda=11.2,也就是兼容了cuDNN=8.0)
安装之前最好是将版本信息搞明白,知道自己需要安装的各种库的版本信息,然后才能快速安装,不易出现问题
(1)查看显卡信息:
右键【我的电脑】→【属性】→【硬件】→【资源管理器】→【显示卡】,双击显卡型号,打开对话框,显示显卡信息(N卡才支持GPU)
(2)查看显卡支持的最高版本CUDA
【打开显卡控制面板】
查看所支持的最高的CUDA版本: CUDA 11.5(安装的时候要小于等于这个版本)
(3)需要注意
anaconda安装有很多经验分享,不在赘述。
注意:
Anaconda安装好后,需要创建环境,之后的库都安装在自己创建的环境当中,这样方便管理。(主要是在出现问题后方便解决)
创建自己的环境:
conda create -n torch_ten_gpu python=3.7
环境的语言版本要尤其注意,需要查看自己安装的库所支持的语言版本:有些版本不支持python3.6以上
激活环境:
activate torch_ten_gpu
设置镜像:
channels:
- https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
- https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
- https://mirrors.bfsu.edu.cn//anaconda/cloud/pytorch/
- defaults
show_channel_urls: true
镜像设置有很多方法,把以上镜像地址加入
同时安装TensorFlow和Torch的GPU版本时,建议先安装Torch。
进入Torch官网Start Locally | PyTorch
因为Torch的新版本限制:
CUDA-10.2 PyTorch builds are no longer available for Windows, please use CUDA-11.3
CUDA-10.2版本已经不能使用;所以需要安装CUDA-11.3的版本
因此第一步:安装CUDA-11.3(电脑显卡需支持)
只需安装cudatoolkit即可
conda install cudatoolkit=11.3
安装cuDNN:
conda install cudnn=8.1.0
安装Torch:
命令安装:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
(有些教程说要去掉: -c ;
我这里没有去掉也未出现问题,如果最后有问题出现,有可能是这里的问题,可以去掉重试)
测试安装结果:
查看已安装的库版本:conda list
代码测试:
python
import torch
torch.cuda.is_available()
结果为True,说明安装成功
安装TensorFlow-gpu
(1)查看对应版本:在 Windows 环境中从源代码构建 | TensorFlow
根据之前说的CUDA向下兼容的情况,可以安装TensorFlow-gpu=2.6.0
安装:(镜像安装,速度飞起)
pip install tensorflow-gpu==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
测试:
python
import tensorflow as tf
print(tf.test.is_gpu_available())
结果为True,安装成功
希望可以帮大家解决一些遇到的同样问题。