写在最前面的话:在anaconda的虚拟环境中安装对应版本的cudatoolkit和cudnn一样可以正常跑深度学习,我觉得这是最简单的方法了,比后面在系统中独立安装CUDA和cuDNN省事的多多多多,下面来看具体的步骤(需要提前安装好Anaconda工具):
0.查看tensorflow所需的CUDA、cuDNN环境:
直接上链接:Build from source | TensorFlow (google.cn),比如我想安装配置tensorflow-2.2.0的GPU环境(一般要跑的开源项目中会告诉你需要使用到tensorflow版本是多少),那么我就要配置CUDA版本为10.1,cuDNN版本为7.6,这个前提是你的nvidia驱动版本要支持10.1,可以直接查看2.1章节中介绍驱动中支持的最高CUDA版本。
然后下面的步骤就是配置这几个环境。
1.创建anaconda虚拟环境(上图中也有介绍python版本在3.5-3.8之间,一般安装3.7,稳定):
conda create -n my_tf_2.2.0 python=3.7
2.激活my_tf_2.2.0虚拟环境:
conda activate my_tf_2.2.0
3.安装cudatoolkit:
conda install cudatoolkit=10.1
4.安装cudnn:
conda install cudnn=7.6
5.安装tensorflow:
pip install tensorflow-gpu==2.2.0
6.测试一下gpu是否可用,最后打印为True,则环境配置好了:
import tensorflow as tf
tf.test.is_gpu_availabel()
7.其他:
我在import tensorflow的时候报了个错:
可以参考该博客,降低版本就行:(40条消息) TypeError: Descriptors cannot not be created directly._做一颗贝极星的博客-CSDN博客https://blog.csdn.net/m0_63474848/article/details/125025303#:~:text=If%20you%20cannot%20immediately%20regenerate%20your%20protos%2C%20some,use%20pure-Python%20parsing%20and%20will%20be%20much%20slower%29.
目录
1.安装Anaconda
2.CUDA
2.1确定本显卡驱动支持的最高CUDA版本
2.2安装CUDA
3.cuDNN
3.1查看对应cuDNN版本
3.2安装cuDNN
4.tensorflow安装
整体思路:首先要确定安装的tensorflow-gpu版本,然后再对应CUDA、cuDNN版本。最后进行配置:其顺序为CUDA-cuDNN-tensorflow-gpu。
Anaconda是对不同项目的环境进行管理的工具,最好使得一个项目对应一个anaconda环境,这样就能够有效避免不同项目之间的环境交错混乱。
官网下载-安装即可。
安装好annaconda后要进行换源,可以在文件路径下C:\Users\ice\.condarc直接添加,(如果找不到尝试输入以下命令:conda config --set show_channel_urls yes),也可以通过命令如conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main添加到上面的.condarc文件中。
这是添加后的conda的源,一般这几个够用了(这还有安装pytorch的源)。
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- defaults
show_channel_urls: true
同样可以配置一下pip命令的源,由图可以知道,换成国内源后,将在C:\Users\ice\AppData\Roaming下创建pip文件夹(ice为用户名),并在其文件夹下创建pip.ini文件,用来保存源地址。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.index-url https://pypi.douban.com/simple/
dos命令框下(快捷键win+r)输入nvidia-smi,查看本机设备(Nvidia显卡驱动)支持的最高CUDA版本为11.4。
这里简单概括一下nvidia驱动、CUDA和cudnn的关系:首先CUDA是Nvidia推出的只能用于自家GPU的并行计算框架。其次只有安装CUDA这个框架才能够进行复杂的并行计算,并且主流的深度学习框架也都是基于CUDA进行GPU并行加速的。最后cuDNN是针对深度卷积神经网络的加速库。参考自知乎回答。
网址:CUDA Toolkit Archive | NVIDIA Developer
我选择的是CUDA10.1版本(低于最高可支持的11.4版本,应该是可以支持跑得通的)。在上面网址下载后直接安装,在自定义-高级安装处,取消勾选visual studio,勾选了的话似乎会报错。
安装完成后,通过ncvv -V查看是否安装成功。
可以通过链接1来确定cuDNN,CUDA10.1对应着cuDNN7.6,tensorflow2.1.0-2.3.0各版本,如下图所示。
通过链接2可以看到,cuDNN8.0也支持CUDA10.1,这是在系统层面的cuDNN和CUDA可以适配。如果加上tensorflow的版本就只能依据上图所示的版本进行对应,为求保证tensorflow-gpu环境配置,将按照上图进行环境配置,即:tensorflow2.1.0-CUDA10.1-cuDNN7.6.5。
从链接2中下载对应的cuDNN,然后解压,最后将解压缩后的文件拷贝到CUDA路径下,本文的路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1,操作如下图所示:
设置-显示-关于-高级系统设置-环境变量-系统变量:找到path路径,添加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
以上,CUDA和cuDNN都已经配置好了,下面安装tensorflow。
这个就简单很多,直接使用pip命令进行安装,只需要对应好自己的tensorflow-gpu版本:
pip install tensorflow-gpu==2.2.0 -i https://pypi.doubanio.com/simple/
下面正式来看一下如何安装tensorflow并检查一下是否可以正常调用GPU:
1.创建anaconda虚拟环境:conda create -n my_tf python=3.7
2.激活my_tf虚拟环境:conda activate my_tf
3.安装tensorflow-gpu:pip install tensorflow-gpu==2.2.0 -i https://pypi.doubanio.com/simple/
4.进入python环境:python
5.导入tensorflow库并测试gpu是否可用:如果最后显示为Ture,则安装成功,可以调用GPU资源了。
import tensorflow as tf
tf.test.is_gpu_availabel()