本来环境配置好了torch-gpu,结果今天发现模型需要tensorflow-gpu,因此在python3.10和cuda11.8的基础上,使用pip配置了对应版本的cudnn和tensorflow-gpu。
部署环境:RTX 3050 + win11
文章目录
1.看python的版本
进入环境,输入
python
得到我的python版本是3.10.11
2.看cuda的版本
因为之前已经下载过cuda了,所以可以直接
输入
pip list
往下找到torch,得到CUDA版本为11.8
提示:如果还没有安装cuda的,可以参考一下链接
链接: CUDA安装教程(超详细)
3.选择cudnn的版本
点击链接: cuDNN Archive
(1)新用户需要注册,注册后来到这个页面
(2)找到Download cuDnn vX.X.X for CUDA 11.x
的字样
其中,v8.9.7代表cuDNN的版本是8.9.7,并且这个版本与CUDA11.x适配
(3)点击Download cuDNN vX.X.X for CUDA 11.x
,就会发现页面顶格了这条黑字体,这说明以下蓝体字就是cuDNN的8.9.7版本,点击自己电脑对应的系统并且下载(因为我是windows,因此选择第一个)
(4)解压cuDNN,将各个文件夹里面的内容复制到CUDA对应的文件夹里面去,如果有重复名称的就替换
ATTENTION:不是直接把文件夹复制过去,而是把文件夹里面的内容复制率放过去!!
(5)点击设置
点击新建,将下面的地址添加进去
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp
(6)打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\demo_suite
右击空白处,在终端打开
(7)输入.\bandwidthTest.exe
和.\deviceQuery.exe
,结果如下,代表没问题
4.删除之前下错了的tensorflow安装包
ATTENTION:安装之前,要把环境中有关tensorflow的安装包全部删掉!!
因为之前贪懒所以没有删,导致一直出现红字
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow-intel 2.11.1 requires keras<2.12,>=2.11.0, but you have keras 2.10.0 which is incompatible.
tensorflow-intel 2.11.1 requires tensorboard<2.12,>=2.11, but you have tensorboard 2.10.1 which is incompatible.
tensorflow-intel 2.11.1 requires tensorflow-estimator<2.12,>=2.11.0, but you have tensorflow-estimator 2.10.0 which is incompatible.
个人的想法是这样的:我只打入了命令pip install tensorflow
,并没有打入命令去下载tensorboard这些包。这说明这些包是下载tensorflow自带的。如果我删完了,下载tensorflow也会自动附带适配版本的包。如果我没删完,那么这些残留的包就会阻碍tensorflow新版本的下载。
这时候有两种方法
1.❤️由报错可知,只有tensorflow-intel 2.11.1阻碍了包的下载,因此pip uninstall tensorflow-intel 2.11.1
后,即可进入下一步
这里需要注意一点:
如果出现WARNING: Skipping tensorboard as it is not installed.
但是pip list中明明看到了有这个包,并且包的名字没有打错,说明这个包不在当前环境里,有可能是在base环境里,需要回到base环境去删除
2.输入命令pip list
,把ERROR中版本不对应的以及pip list中以“tensorflow”开头的包全部删掉
5.使用命令安装tensorflow-gpu的2.10.1版本
全部的安装包删除完,输入
pip install tensorflow-gpu==2.10.1
这时候应该没什么错了吧😢
如果出现ERROR:Could not find a version that satisfies the requirement tensorflow-gpu == (from versions 2.8.0,2.8.1,2.9.0.....)
,这说明你的python版本和 tensorflow-gpu的版本不符合,应该选择2.8.0以上的版本
如果不知道应该选择tensorflow-gpu的什么版本,可以用搜搜其他经验帖,以此推测一下,也可以看看官网。如果直接问GPT4和C知道,给的答案并不靠谱🥲
6.使用命令检查tensorflow-gpu是否能够使用
验证是否成功安装和调用GPU进行运算
python
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
#这一行输出至少是数量1,说明有1个显卡
print("CUDA Available:", tf.test.is_built_with_cuda())
#这一行要输出True
print("GPU Support:", tf.test.is_built_with_gpu_support())
#这一行也要输出True
最后试验一下是否可行。如果显示True和[PhysicalDevice(name=‘/physical_device:GPU:0’, device_type=‘GPU’)],则说明tensorflow安装成功🥰
python
import tensorflow as tf
print(tf.test.is_gpu_available())
#应该显示True
tf.config.list_physical_devices('GPU')
#应该显示[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
参考帖:
1.ERROR: pip‘s dependency resolver does not currently take into account all the packages 解决办法分享
2. CUDA与cuDNN安装教程(超详细)