深度学习|深度学习环境搭建(win11+tensorflow2.7+CUDA11.6+cuDNN8.3.2)

文章目录
前言
一、可行的对应版本配置
二、安装步骤
1. 显卡算力和显卡驱动版本
2. tensorflow对应的CUDA、cuDNN和python版本
3. tensorflow 和 keras 安装
4. CUDA 和 cuDNN 下载
5. CUDA 和 cuDNN 安装
6. 运行测试
三、名词解释
前言
时间:2022年1月16日01:41:51
环境:Win10 64位,RTX2060 显卡算力7.5,VScode,python3.7.0。
搭建tensorflow和keras深度学习环境的时候,即使安装成功,由于版本不匹配的问题,导致频繁报错,比如版本不对会出现导入模块错误。由于项目原因要用python3.7.0,但我的tensorflow和keras都是最新版2.7.0,搜遍全网也没有找到对应版本的配置,尝试了很多版本,每次下载都是近3G大小,匹配过程中各种报错,折腾了三四天,简直让人炸裂。
各位一定要根据自己电脑的显卡算力、显卡驱动版本、python版本、tensorflow版本、keras版本,去匹配对应的CUDA和cuDNN版本。各版本并非完全唯一对应,而是有一定的范围区间。
一、可行的对应版本配置
python3.7.0+CUDA11.6.0+cuDNN8.3.2+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA11.3.1+cuDNN8.2.1+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow2.2.0+keras 2.3.1
二、安装步骤
1. 显卡算力和显卡驱动版本
显卡算力决定你的CUDA版本区间:
NIVDIA显卡算力官方查询

维基百科查询显卡算力对应的CUDA版本区间(境内无法正常打开):
维基百科CUDA
比如我的显卡RTX2060 算力7.5,那么可以下载的CUDA版本区间为10.0-10.2 和 11.0以上。
【深度学习|深度学习环境搭建(win11+tensorflow2.7+CUDA11.6+cuDNN8.3.2)】显卡驱动版本,在NVIDIA控制面板的系统信息可查询到,建议更新到最新版本,这样就不会因驱动版本而下载CUDA版本受限。
NVIDIA官方显卡驱动更新

更新显卡驱动程序,建议在选项 Download Type 选 Studio Driver(SD),因为对深度学习有利。
NVIDIA官方 CUDA与显卡驱动版本对应表查询
比如我的显卡驱动版本是最新版511.23,则可以下载CUDA 11.6 GA及以下所有版本,它决定了你能下载CUDA版本的上限。
因此,显卡算力和显卡驱动版本共同决定你能下载的CUDA版本区间。
2. tensorflow对应的CUDA、cuDNN和python版本
官方查询 tensorflow-gpu与CUDA cuDNN Python版本关系

或者参考我在本文第一部分提到的测试的配置版本。
python3.7.0+CUDA11.6.0+cuDNN8.3.2+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA11.3.1+cuDNN8.2.1+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow2.2.0+keras 2.3.1
3. tensorflow 和 keras 安装
CMD命令行输入:
pip install tensorflow
pip install keras
# 或用豆瓣镜像源下载,速度比较快
pip install tensorflow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
1
2
3
4
5
默认下载的是最新版2.7.0。直接下载的是国外源速度慢,可以换成国内镜像源(豆瓣、阿里云、清华大学等)。注意tensorflow2.7.0默认包含cpu和gpu版,无需区分安装,但其他版本安装时区分CPU版和GPU版(tensorflow-gpu)。如果要下载特定版本的,如:
pip install tensorflow==2.2.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install tensorflow-gpu==2.2.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install keras==2.3.1 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
1
2
3
4. CUDA 和 cuDNN 下载
CUDA下载有两种版本,local(本地版) 和 network(在线版),建议下载在线版,文件只有几十M。本地版内置了显卡驱动程序和各种组件的可选安装,文件有2.2G大小。
CUDA最新版(v11.6.0)和归档版官方下载
cuDNN最新版(v8.3.2)官方下载
cuDNN归档版官方下载

5. CUDA 和 cuDNN 安装
CUDA安装选自定义(高级)
自定义安装选项只选CUDA的4个(Runtime、Development、Samples、Documentation)。其他的看你需求,Visual Studio Integration 是VS的集成,我用的IDE是VScode,不需要VS。
NVIDIA GeForce Experience 是显卡驱动程序,如果你已经更新了显卡驱动版本,就不用选了,因为每个CUDA版本里面都含显卡驱动程序,如果你每次都选相当于每次更新显卡驱动版本。Other components 是声卡等设备驱动程序,我电脑有装了,不用选。
然后选择安装路径,点击安装,本地版的很快,在线版的需要联网下载安装,慢些。
cuDNN下载好后解压,把里面的三个文件夹的内容分别移到CUDA安装目录里对应的同名文件夹里面。其中include和bin文件夹可以直接移动,lib文件夹内容要移动到lib\x64目录下。
这时,环境变量的Path里可以看到CUDA的两个变量。如果你安装了多个CUDA版本,只需要把该版本的两个变量移到最上面,就会激活它。

6. 运行测试
查看python版本和安装的模块,CMD命令行输入:
python --version
pip list
1
2
查看CUDA 和 tensorflow的版本,CMD命令行输入:
nvcc -V # 查看CUDA版本
import tensorflow as tf
print(tf.__version__) # 查看tensorflow版本
tf.test.is_gpu_available() # 测试GPU加速是否可用,如果最后结果为True,则可用
1
2
3
4
或者在CUDA安装目录查看版本:
D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6,右击version.json 用记事本打开即可查看CUDA版本;

或者在D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite:
右击空白处打开PowerShell\CMD终端,命令行输入:
.\deviceQuery.exe
1
查看cuDNN版本:
在CUDA安装目录D:\JavaIDE\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include:
右击cudnn_version.h(低版本的是cudnn.h)用记事本打开即可查看cuDNN版本。比如我的cuDNN就是v8.3.2版本。

跑一个python程序测试:
之前在python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow 2.2.0+keras 2.3.1配置环境,运行情况:
import keras # 如果返回 Using TensorFlow backend 表示安装成功,如果报错则说明 keras与tensorflow的版本对应错了
1
一切正常。
三、名词解释
TensorFlow:一个开源软件库,用于各种感知和语言理解任务的机器学习。
Keras:一个用Python编写的开源神经网络库,能够在TensorFlow、Microsoft Cognitive Toolkit、Theano或PlaidML之上运行。Keras旨在快速实现深度神经网络,专注于用户友好、模块化和可扩展性。
CUDA:统一计算架构。专为GPU同时处理多重任务而设计,大规模的并行计算处理,十分适合对图形处理、语音识别、视频等领域进行分析渲染。
cuDNN:深度神经网络库,针对CUDA优化,实现高性能GPU加速。

    推荐阅读