win10安装的相关环境:
电脑 | 华硕ASUS |
---|---|
系统 | win10家庭中文版 |
显卡 | NVIDIA Geforce 940MX |
Tensorflow | 1.15.0 |
Pycharm | 2020.1.1 |
Python | 3.7 |
Anaconda | Anaconda3-2020.11_windows_x86_64 |
Cuda | 10.0 |
Cudnn | v7.4.2 |
问题记录:由于学习的深度代码是基于tensorflow1.x版本的实现的,我又不想升级到tensorflow2.x版本的代码,加上个人电脑这配置找到的资料也少,所以简单记录下安装流程
具体安装教程:
step1:先看电脑的显卡信息,“此电脑(鼠标右击)”-“管理”-“设备管理器”-“显示适配器”
step2:查看Geforce 940支持的cuda版本,目前电脑驱动升级自动把低版本卸载了,所以无法提供最初的界面,这边给个相关链接,写的很详细,下面是我的电脑结果图
可以看到我目前电脑的最高支持cuda11.0.208
step3:检查tensorflow,cuda,cudnn对应关系的官网链接
step4:下载上图中标记出的cudnn和cuda
cuda的官网链接,cudnn的官网链接,然后是下载教程的文字操作版,视频操作版
step5:安装anaconda3,可以直接安装最新的或者根据python版本下载,相关操作教程的链接1或者链接2都可以
step6:conda创建个人环境直接通过anconda navigator图形化界面就行,图形化界面链接
注意 我碰到过anaconda图形化界面和命令行里面对不上,这时候以命令行里面为准,所以还是贴一个命令行的 命令行操作链接
pycharm引用conda环境的 操作链接
问题:检测GPU是否可用时程序报错,原文链接
测试代码:
import tensorflow as tf
print(tf.__version__)
print(tf.test.gpu_device_name())
print(tf.config.experimental.set_visible_devices)
print('GPU:', tf.config.list_physical_devices('GPU'))
print('CPU:', tf.config.list_physical_devices(device_type='CPU'))
print(tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())
# 输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# 查询GPU设备
报错信息
AttributeError: module 'tensorflow._api.v1.config' has no attribute 'list_physical_devices'
解决方案:原文链接
tf.config.experimental.list_physical_devices("GPU")
tensorflow1.15要在config后面加个.experimental.
tensorflow2.x不用加
将上面修改后可以得到下面这个图
上图解释:2输出的是tensorflow-gpu版本,5输出的上面测试代码的结果,如果5的结果显示GPU的数量不为0,那么4就不用管,3这里也可以不用管,我看到过的解释是tensorflow版本太老了,如果不想看到它,这里也给个处理链接
问题:上面这个图里面有可能1这个地方会显示找不到这个.dll文件
解决方案:原文链接和DLL-files.com官网
1. 官网有 -> 直接复制缺失的.dll文件名字,然后去官网下载
2. 官网没有 -> 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0下面找 ->改名字放到C:\Windows\System32下面
举例:如果缺少cudart64_100.dll,首先去官网找
然后下载解压后放到C:\Windows\System32中,如果不存在就到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0里面,然后搜索cudart64.dll,将名字改成cudart64_100.dll后放到C:\Windows\System32里面
问题:全部安装完成后,跑代码的时候控制面板显示GPU一直为0%
解决方案:我做了两部分操作,具体是一起在起作用还是单独起作用,实验下来方案1确实有点用,它可以针对某个程序或所有程序选择NVIDIA处理。我感觉好像代码上对GPU调用代码有问题,所以有方案2作为补充,具体方案1和方案2哪个效果大,暂时不知道!
方案1:首先打开"NVIDIA控制面板" -> "管理3D设置" -> "全局设置" -> "首选图形处理器"
"程序设置" -> "选择要自定义的程序"
然后点击"开始" -> "设置" -> "屏幕" -> "图形设置" -> "浏览(添加pycharm程序)" -> "选项" ->"高性能"
目前看来,结果上确实GPU在起作用,但我对进程进行检测时发现pycharm代码使用GPU效率并不高,大部分时间甚至没调用GPU,如下图
方案2:后续找了点资料,才知道自己的代码写的有问题,感觉并没有合理调用GPU资源,采用原文链接提供的方法3动态分配优化了下代码
# allow_soft_placement=True 没有GPU的话在CPU上运行
# log_device_placement=True 打印设备日志
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)
config.gpu_options.allow_growth = True # 按需分配显存
with tf.Session(config=config) as sess:
sess.run(...)
下面是运行结果的截图
从日志来看确实调用了GPU0,但是性能上好像并没有多少提升!仔细测试了下,和我测试的模型有关,不过总的来说,使用tensorflow-gpu在geforce 940mx上训练的目的达到了!
下面附带一张两种方案都采纳的RTX4090+tensorflow1.5跑的数据量比较大的效果图
果然还是我代码有问题,太酷啦!!!😭😭😭
附加:win11-RTX 4090-tensorflow1.x安装教程
如果你安装的环境不同,请参考原文链接,里面有其他版本的30/40系列安装文件,选择window平台跟着操作就行
提示:安装文件需要到github下载!!
win11安装的相关环境:
系统 | Windows 11 Pro for Workstations (23H2) |
---|---|
显卡 | NVIDIA Geforce RTX 4090 |
Tensorflow | 1.15.4+nv |
Pycharm | 2022.1.4 |
Python | 3.8.20 |
Anaconda | Anaconda3-2020.11_windows_x86_64 |
Cuda | 12.6 |
Cudnn | v7.4.2 |
整个教程比较简单,首先是在anacoda里面创建一个容器,然后指定python的版本为3.8的即可,然后根据提供的github网站链接去下载对应的版本,最后使用命令行安装即可。
step1:我这边用图形化界面操作(实验室电脑截图,有点模糊,将就一下)
step2:进到github网址,然后下载下面这4个,最后解压安装即可(只解压0001就行)
step3:whl文件安装(我这边原文件已经删除了,这边给一个链接地址)
激活conda环境,在自己的虚拟环境下安装(我解压放的桌面,""部分的内容请自行替代,""是不需要的)
1.打开 Anaconda Prompt
2.输入 conda activate "wk_gpu"
3.安装 pip install "C:\Users\admin\Desktop"\tensorflow-1.15.4+nv-cp38-cp38-win_amd64.whl
4.查看 conda list
以上是我的电脑的路径,请注意修改!
问题:显示protoc >= 3.19.0,需要降低版本,如下图
解决方案:先卸载当前版本,再下载3.19.0版本的protoc即可
1.打开 Anaconda prompt
2.输入 conda activate tf1x
3.输入 conda list
1.输入 pip uninstall protobuf
2.输入 y ->
3.输入 pip install protobuf==3.19.0
安装就结束了,可以跑代码了!祝好运😘