python Tensorflow-GPU 环境搭建(win11)

1. 检查电脑GPU驱动型号等信息 获悉电脑支持的最高cuda型号

(1)打开英伟达控制面板 如下图

(2)查看对应显卡型号 如下图 我的版本是517

 

(3)在网站 CUDA 12.1 Update 1 Release Notes (nvidia.com) 查看该显卡驱动型号对应的cuda型号(支持的cuda最高型号) 如下图 可以看到 我的最高能支持到cuda11.8

ps:以上步骤参考:win11配置深度学习环境GPU - 知乎 (zhihu.com) 

2. 在Tensorflow官网上根据需要的Tensorflow版本查找所对应的cuda和cuDNN的版本

在网站 Tensorflow中文官网 上找到满足自己需要的 tensorflow-gpu 的版本,并查看其对应需要的cuda 和 cuDNN 型号。如下图,我的代码需要 tensorflow2.6,其需要的cuda版本是11.2cuDNN版本是8.1,是可以被我电脑的显卡驱动所支持的。

3. NVIDIA官网上下载相应型号的cuda 并正确安装配置

(1)下载

cuda在英伟达官网上下载即可:英伟达官网

当根据自己的电脑进行选择后,请一定要注意,如下图红框所示,要选择找到所需的历史版本,并进行下载。

 

(2)安装

安装时,要注意

- 选择默认文件夹 并记得安装路径 便于之后修改添加环境变量 并安装cuDNN

- 选择自定义安装 而非精简安装 如下图所示

之后出现了一个争议性问题:

如下图所示,红框所示的三个是否要勾选

不同的参考源给出了不同的选择,但总的来说,原则如下:

如果是第一次安装,尽量全选;如果是第n次安装,尽量只选择第一个,否则可能会出现错误

PS:cmd命令行敲 nvcc -V 如果反馈了cuda版本号 则证明已经安装了cuda

(3)配置环境变量

如下图所示 查看变量名为 CUDA_PATHCUDA_PATH_V11_2 的系统变量,是否如下图所示被添加了正确的路径(值)。如果没有,则需要手动添加,且添加的内容应该是刚刚安装 cuda 的路径。(比如我的就是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

(4)校验

参考 “5.检查cuda是否安装成功 ” 

ps:参考源

cuda下载安装1

cuda下载安装2

4. NVIDIA官网或镜像网站上下载相应型号的cuDNN 并正确安装配置

(1)说明

cuDNN是一个下载安装包,获取方式有以下三种

- 找公司或者学校的数据库 看有没有(我采用的)

- 从英伟达官方网站上下载 但需要注册 英伟达官方

- 从镜像网站上下载 参考中间部分

(2)安装

cuDNN解压后应该是一个文件夹 包含了 bin, include, lib 三个子文件夹以及一个txt说明文件

如下图所示,找到自己cuda的安装路径,并将相应的内容拷贝到对应的位置(不会有冲突文件),如下图所示。

(3)配置环境变量

类似于cuda配置环境变量,但不同的是,cuDNN需要对变量名为 Path 的变量进行编辑操作,再如下图所示,查看并添加以下四个路径。

(4)校验

参考 “7.检验tensorflow-GPU能否正常加载” 

5. 检查cuda是否安装成功

(1)cmd进入命令行窗口 键入 nvcc -V 显示如下图红框所示 即为该版本安装成功

(2)cd 进入到cuda的安装路径(比如我的就是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2),并继续向下进入到 ...\extras\demo_suite 文件夹,找到如下两个.exe文件,并在cmd窗口内执行,看是否得出如下图所示的结果:

(3)参考源:检验cuda是否安装成功

6. 创建虚拟环境 并在该环境里下载安装相应版本的tensorflow

(0)使用 Anaconda Powershell Prompt 命令行通过conda创建虚拟环境

(1)conda 创建虚拟环境。依据步骤2,可知需要tensorflow版本为2.6时,python版本应为3.8

因此:conda create --name 英文环境名 python==3.8 

(我的英文环境名为 tensorflow26)

(2)激活该虚拟环境 

conda activate 英文环境名

(3)在该激活虚拟环境下通过pip安装tensorflow

pip install tensorflow-gpu==版本号

(我想安装的版本号是2.6)

7. 检验tensorflow-GPU能否正常加载

在任意位置创建一个py文件(路径没有中文),python代码如下:

import tensorflow as tf

print(tf.config.list_physical_devices('GPU'))


a = tf.constant(2.)
b = tf.constant(4.)

print(a * b)

在步骤6所述的虚拟环境(已激活)下,运行该代码。如下图所示:

8. 排除相应的错误

事实上,我的步骤7一开始并没有成功,遇到了报错:

内容类似于下面:

TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

解决办法是,按照提示,对 protobuf进行降级。

具体来说,

(0)Anaconda Powershell Prompt中激活该虚拟环境(如果已经在该虚拟环境中,可不做)

(1)pip uninstall protobuf      卸载当前protobuf

(2)pip install protobuf==3.20     安装符合要求的protobuf

参考

9. tensorflow2.6.0 版本对齐

备注:即使 “7.检验tensorflow-GPU能否正常加载” 顺利通过也不能证明tensorflow完全ok。在实践中,tensorflow不同版本对某些库的版本要求苛刻。

这里仅列出 tensorflow2.6.0 对各种库/python/环境的版本要求

请务必仔细检查(每安装一个库都要查一遍)

tensorflow2.6.0配套库/环境版本
python

3.7

cuda11.2
cuDNN8.1
protobuf3.20.0
numpy1.19.5
keras2.6.0
matplotlib3.3.4

相应的安装方式

pip uninstall numpy

pip install numpy==1.19.5

pip uninstall protobuf

pip install protobuf==3.20.0

pip3 install keras==2.6.0

pip install matplotlib==3.3.4

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值