关于TensorFlow-gpu+jupyter的正确安装方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近开始接触深度学习,为了加快模型训练速度,应用TensorFlow-gpu版本是必须的,在安装过程中,出现了各种版本不兼容和冲突的问题,期间借鉴了社区各个大佬的解决方案,最终在“calmdownn”大佬这一篇文章中,完整的解决了jupyter+TensorFlow-gpu的兼容使用的问题。
结合自身的一些情况,在“calmdownn”大佬文章的基础上,对自身安装时出现的一些问题进行记录,方便后期回顾和大家参考;

注意:jupyter是Anaconda安装好后自带的,所以创建了虚拟环境后不要去升级jupyter,否则会报兼容性错误,因为TensorFlow-gpu目前最高版本使用的typing-extensions包版本为3.7.4,而升级了jupyter后typing-extensions版本变成了4.9.0,所以会冲突,不是TensorFlow无法用就是jupyter无法启动,在下面会说如何安装可以启动的库。

一、完整安装内容及版本号

1.提前下载好的软件和包

2.补充安装的库(python3.8.18)

  • numpy 1.19.2
  • pandas 1.4.1
  • matplotlib 3.2.2

二、安装流程

这个流程是我自身的安装流程,借鉴大佬“calmdownn”的分享文章时已经安装了部分,所以如果要借鉴的同学,可以先按照大佬的跑一下。

1.下载CUDA、cuDNN

在安装之前,先确定自己的NVIDIA显卡的显卡驱动是多少,然后参照对照表选择支持的版本,右键任务栏中的NVIDIA图标,选择控制面板,查看驱动版本号。
在这里插入图片描述

CUDA版本与显卡驱动对照

参照CUDA与NVIDIA各版本的对照表,确定自己的版本
**注意:比你驱动程序版本高的CUDA Toolkit绝对不能使用,你可以使用比你驱动版本低的CUDA在这里插入图片描述

确定CUDA、cuDNN、TensorFlow-gpu的对应版本

GPU对照页面链接
在这里插入图片描述

2.下载和安装Visual Studio2022

在官网直接下载社区版的安装启动器,因为VisualStudio2022是能够成功启动应用CUDA的必要环境之一,VisualStudio2022启动器点开后在选择工作负荷界面,可以仅选择C++桌面开发,右边的【安装详细信息】内的选项我默认,没有做调整,整个装完预估有11G左右,可以在安装位置里面更改安装路径。
在这里插入图片描述

3.安装CUDA、复制粘贴cuDNN

CUDA

CUDA下载下来是一个exe文件(NVIDIA官网上会让你选系统这些,根据自己情况选择),打开文件,第一步会让你选择临时缓存文件夹,直接点OK就好。
在这里插入图片描述

【安装选项】选择自定义(高级),然后直接下一步。

在这里插入图片描述
图中的Visual Studio Integration是困扰大多数人的点,这里我的最终操作是不理会,并且在下一步提示我缺失Visual Studio的时候直接点确认并继续下一步。

在这里插入图片描述
安装完成后,会根据你系统中安装的Visual studio版本提示安装成功情况

在这里插入图片描述

cuDNN

(下载需要注册和填一个简单的问卷,最好用谷歌浏览器,有的会出现插件缺失导致无法输入注册账号的验证码)
cuDNN下载下来是一个压缩包,里面总共共有3个文件夹和一个文本,文本是协议说明,将3个文件夹直接复制粘贴到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2文件夹下(这里根据CUDA的安装目录来定,如果CUDA安装到了其他盘就按照对应路径调整)
在这里插入图片描述

在这里插入图片描述

4.下载TensorFlow-gpu安装包(Windows)

根据对照表复制对应适合Python版本的网址,打开后下载,注意区分GPU和CPU,下载下来是WHL文件,无法直接打开,需要通过pip方法来进行安装,将文件放到方便的位置等后面使用。
需要注意的是,不要给文件重命名,后面有用。
在这里插入图片描述

5.安装Anaconda并创建虚拟环境

将Anaconda安装好后,在Environments内点击Create新建一个虚拟环境,Python版本选择你确定要安装TensorFlow对应的支持的Python版本。
环境名字根据需要自定义。
在这里插入图片描述
在这里插入图片描述

6.安装TensorFlow-gpu

直接在开始菜单栏打开刚安装好的Anaconda Prompt
在这里插入图片描述

通过conda命令先打开我们建好的虚拟环境,这时候虚拟环境除了必要的依赖包没有安装其他的库。

conda activate tensorflow # 打开虚拟环境,tensorflow为自定义的虚拟环境名称

打开虚拟环境后,先进入TensorFlow所在的文件夹,直接pip安装我们下载好的tensorflow文件,注意这里要粘贴tensorflow文件的全称,包括拓展名

pip install tensorflow_gpu-2.6.0-cp39-cp39-win_amd64.whl # .whl拓展名不要忘记复制

在这里插入图片描述
因为是空的虚拟环境,这里安装基本不会有什么问题,会顺利安装完成,包括其中会自带安装numpy。

7.其他库的安装

正常情况下还要安装许多其他的库,尤其是在数据方面的pandas和画图的matplotlib,这时候如果直接安装,容易出现版本不兼容的冲突问题,比如这样的错误:
在这里插入图片描述
这是在安装了TensorFlow后再直接pip安装其他库的时候经常会遇到的情况,解决方案有两种,注意都需要先进入到对应的虚拟环境安装。
【第一种解决方案】
已知能够与你现有库兼容的版本,以pandas为例,我知道能够与Numpy1.19.2兼容的pandas版本为1.4.1,那么我可以直接使用pip安装指定版本;

pip install pandas==1.4.1 # 直接安装特定版本

如果我已经安装了pandas2.X版本,想要将版本降低时,可以用~=来传递版本号:

pip install pandas~=1.4.1

当然也可以先用uninstall将现有版本卸载,再重新pip安装,目前个人感觉都是一样的效果;

pip uninstall pandas # 将现有的pandas卸载
pip install pandas==1.4.1 # 安装指定的pandas版本

【第二种解决方案】
第二种是我在尝试后比较倾向的一种,它不需要知道pandas到底哪个版本与numpy 1.19.2兼容,说实话这个兼容版本很难查。解决方案为在安装了Anaconda的前提下,使用conda功能来安装,会自动匹配正确版本。
例如:
已知TensorFlow安装后自带的Numpy版本为1.19.2,直接使用pip安装pandas的时候会自动将需要兼容的Numpy版本提升到对应版本,这时将现有的Numpy直接卸载,然后使用conda重新安装,在安装时,conda会自动匹配合适的版本,确认无误输入y既可。缺点就是因为要检索匹配的版本,所以加载速度慢一点,所以日常安装库还是可以用pip会快点;
代码示例:

pip install pandas # 默认形式安装pandas,会自动更新对应的numpy版本
pip uninstall numpy # 将现有的Numpy卸载掉,也可以不卸载
conda install numpy~=1.19.2 # 使用conda安装指定的Numpy版本

在这里插入图片描述

jupyter中添加Anaconda虚拟环境

首先在Anaconda Prompt中进入创建好的虚拟环境,然后安装内核,代码如下

pip install ipykernel ipython
ipython kernel install --user --name tensorflow # tensorflow是之前创建好的环境名称

安装成功后,打开jupyter,在内核选择界面就可以看到安装的内核了,在运行TensorFlow相关的代码时,选择对应的内核;
在这里插入图片描述

8.环境变量设置

在安装完成后,需要确认环境变量是否都设置完毕,未设置环境变量是导致无法调用CUDA的主要原因,本次安装设置的环境变量如下,具体根据安装位置略有不同;
打开环境变量方式:右键“此电脑/我的电脑”—属性—高级系统设置—环境变量—系统变量中的“Path”
逐一添加环境变量,有的已经添加了就不用重复添加了,添加完成一路确定结束变量设置
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
F:\anaconda3\Library\bin
F:\anaconda3\Scripts

在这里插入图片描述

9.检验安装情况

直接在命令行输入nvcc -V,如果正确弹出CUDA版本信息就表示安装成功;
在这里插入图片描述
打开创建的虚拟环境,启动jupyter,也可以直接在环境中启动Python,输入下面代码(排查时也可以输入其中的部分代码查看情况):

import tensorflow as tf
print(tf.test.is_gpu_available())

print("TensorFlow的版本:", tf.__version__)  # 查看tensorflow版本
print("-"*40)
print("TensorFlow安装路径:", tf.__path__)     # 查看tensorflow安装路径

a = tf.test.is_built_with_cuda()  # 判断CUDA是否可以用
b = tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
)  # 判断GPU是否可以用

print("CUDA是否可用:", a) # 显示True表示CUDA可用
print("GPU是否可用", b) # 显示True表示GPU可用

# 查看驱动名称
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

当显示下面的结果就表示安装成功了(中间的WARNING是警告提醒,暂时忽略,未来不会用这个语法了)。
在这里插入图片描述

总结

在TensorFlow安装的过程中,遇到的最多的问题就是版本不兼容的问题,上面的安装流程从目前来看避免了部分冲突问题和不知道什么版本之间的兼容性的问题,其他方面的问题还需要根据实际提示结合目前的AI来进行讲解,知道问题出在哪方面后,可以在社区查找各个大神的解决方案

参考资料

来自:@calmdownn
Anaconda/jupyter notebook安装使用tensorflow-gpu

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值