python Tensorflow-GPU 环境搭建(win11)

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

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

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

 python Tensorflow-GPU 环境搭建(win11)_第1张图片

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

python Tensorflow-GPU 环境搭建(win11)_第2张图片

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

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

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

python Tensorflow-GPU 环境搭建(win11)_第3张图片

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

(1)下载

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

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

python Tensorflow-GPU 环境搭建(win11)_第4张图片

 python Tensorflow-GPU 环境搭建(win11)_第5张图片

(2)安装

安装时,要注意

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

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

python Tensorflow-GPU 环境搭建(win11)_第6张图片

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

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

python Tensorflow-GPU 环境搭建(win11)_第7张图片

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

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

(3)配置环境变量

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

python Tensorflow-GPU 环境搭建(win11)_第8张图片 

python Tensorflow-GPU 环境搭建(win11)_第9张图片 

(4)校验

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

ps:参考源

cuda下载安装1

cuda下载安装2

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

(1)说明

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

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

- 从英伟达官方网站上下载 但需要注册 参考中间部分

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

(2)安装

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

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

python Tensorflow-GPU 环境搭建(win11)_第10张图片

(3)配置环境变量

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

python Tensorflow-GPU 环境搭建(win11)_第11张图片 

python Tensorflow-GPU 环境搭建(win11)_第12张图片 

python Tensorflow-GPU 环境搭建(win11)_第13张图片 

(4)校验

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

5. 检查cuda是否安装成功

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

python Tensorflow-GPU 环境搭建(win11)_第14张图片

 

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

python Tensorflow-GPU 环境搭建(win11)_第15张图片

python Tensorflow-GPU 环境搭建(win11)_第16张图片 

python Tensorflow-GPU 环境搭建(win11)_第17张图片 

(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所述的虚拟环境(已激活)下,运行该代码。如下图所示:

python Tensorflow-GPU 环境搭建(win11)_第18张图片

 

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.19.0     安装符合要求的protobuf

参考

你可能感兴趣的:(tensorflow,python,深度学习)