tensorflow-gpu的使用及遇到的各种问题

TensorFlow:GPU的使用 GPU 加速已经成为深度学习领域必不可少的一部分,而 TensorFlow 作为广泛应用的深度学习框架之一,也提供了丰富的 GPU 加速功能。通过合理地配置 TensorFlow 和 GPU,开发者可以充分利用 GPU 的并行计算能力,加速深度学习模型的训练和推理过程,从而提高工作效率和模型性能。未来,随着硬件技术的不断进步和深度学习框架的优化,我们有望看到更加高效和强大的 GPU 加速技术,为深度学习任务的处理提供更为便利和高效的计算支持。 阅读详情

前言

很久没有更新博客了,和女朋友结束异地,更多的时间多了一些陪伴,多了一些幸福,生活中的学习琐碎就没有记录。标题所示问题困扰了我近一周,幸好在周二之前解决了问题,得以完成自编码器的训练,能够从容应对周二和导师的单独见面会hhh(昨晚做梦都是考试,也许是对见面会心存恐惧,压力有点大)。还是那句话不希望后来者仍走弯路,仍掉大坑。首先展示tensorflow-CPU和tensorflow-GPU运算速度的差距,是一个epoch的时长比较。下图是用了一小部分数据示范性训练,大约有八千张图,做自编码器。图知,大约快了25倍。这个倍数应该会随着数据量的扩大而增大。
CPU深度学习训练时长
GPU深度学习训练时长

版本问题

我在安装过程中,其实这个版本问题是一直萦绕在整个探索过程中。出现了很多问题,但是我都没有第一时间意识到是版本问题。所以首先确认好需要安装的版本可以避免超级多的麻烦。
首先确认一点:1.电脑显卡配置决定CUDA上限;2.CUDA版本和tensorflow-gpu(包括python版本)版本是一对多的关系;3.CUDA版本和cuDAA版本基本上是一对一(除了11.6的CUDA)的关系。因此你的版本思路可以是:CUDA-tensorflow(python)-cuDAA(电脑配置为起点),也可以是:tensorflow(python)-CUDA-cuDAA(项目代码为起点)。因为有些项目是基于tensorflow2.0及以上,因此跟代码走也是可以的。

电脑显卡配置决定CUDA上限

具体是显卡配置-算力-CUDA版本上限。但是这里提示一句,不一定要装该上限版本的CUDA,因为大家都懂,版本高好用,但不稳定啊。我的电脑最高能装11.6的,我装了后,出现了一系列麻烦的问题。所以我建议选择经典版本最稳妥。
显卡配置-算力:https://developer.nvidia.com/cuda-gpus#collapseOne
算力-CUDA版本上限:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
或者直接必应搜索显卡对应的CUDA版本。

CUDA版本和tensorflow-gpu版本对应

CUDA版本和tensorflow-gpu(包括python版本)版本是一对多的关系,见下图。如果你的CUDA版本更新,可以单独必应搜索即可。如CUDA11.6对应的tensorflow版本即可。官方最新查询渠道:https://tensorflow.google.cn/install/source_windows?hl=en#gpu
CUDA版本与tensorflow版本对应关系图

CUDA版本和cuDNN版本对应

在安装时,官网中直接根据CUDA版本,直接选择相应的cuDNN安装即可,就很简单了。这里须知,cuDNN就是CUDA的一个可深度学习的补丁。
最后我安装成功的版本配置给大家,可放心食用:python3.7+CUDA10.0+tensorflow-gpu1.15.0-keras-gpu1.5.0。

安装问题

挑选了前辈的几个非常实用和详细的博客,大家可以自行仿照。
1.CUDA和cuDNN安装教程:https://blog.youkuaiyun.com/m0_37605642/article/details/98854753
2.CUDA卸载和重装:https://blog.youkuaiyun.com/m0_37605642/article/details/99100924
3.tensorflow-gpu安装,以1.5.0版本为例。记住在conda的虚拟环境中直接用pip安装而不是conda,且无需镜像也挺快。

pip install tensorflow-gpu==1.15.0

4.不会吧不会吧,不还不知道什么是虚拟环境,那就坏了。一定记住,每一个项目跟随着一个虚拟环境,就像一个小工作室,这个工作室里面配置想要的python版本和其他API。具体见我另外的博客:https://blog.youkuaiyun.com/learn_python_/article/details/109486668?spm=1001.2014.3001.5502。但是我的这个博客讲的也不是很细,可以必应搜索:anaconda环境配置、anaconda与pycharm连接。
5.安装成功验证:https://blog.youkuaiyun.com/weixin_56197703/article/details/125192385
6.调用GPU:

imort os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"   # 选择GPU0和GPU1训练
model = multi_gpu_model(model, 2)   # 这里设定选择两个设备,不设定默认一个设备

提示几点:1.CUDA下载本地版,cuDNN下载ZIP,解压后一定记住,将cuDNN中目录下最里面的内容复制到对应的CUDA的位置,不是复制整个文件夹。2.同一个虚拟环境中只能由一个gpu的tensorflow版本,不能有cpu版本(我不知道是不是2.0及以上两者融合了)。其实你在换gpu的其他版本时,其实默认是卸载其余gpu版本的。2.环境变量配置一定要严谨,我的配置如下:
环境变量配置

出现的常见问题解答

如上,大家也看到我尝试过重装,因为出现了种种问题,但是有些问题没有截图,只有当时的搜索记录,我就按图索骥,给大家介绍下我遇到的一些问题,当然也希望大家用不到我的这一节。

问题一:Created TensorFlow device (/device:GPU:0 with 6696 MB memory) -> physical GPU…

这个不影响,说明还是能够搜索到可用GPU的

问题二:Cannot dlopen some GPU libraries

网上有很多解答,很多推测。我的解决办法不是唯一解,但是可以去尝试。我最终通过降级CUDA,从11.6降为了10.0,同时跟随着tensorflow-gpu版本也随之降低。当时觉得11.6不行,也不会是版本问题,我也是严格对应的,死马当活马医。结果真的是版本问题。

问题三:failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

这说明GPU可用了,但是在做深度学习训练时连接不到GPU。查询后发现是在配置运用GPU设备时写了‘1’了,但实际上我的可用设备只有一个,因此改为0即可。

os.environ["CUDA_VISIBLE_DEVICES"] = "1"  # 改为0即可

但是这里提下,我的电脑中包含了一个独显一个集显。集显一般无法使用,因此显示还是只有一个GPU可用,是正常的。
记住一点:只要安装验证中出现的tf.test.is_gpu_available()为Ture代表的就是全部安装成功,gpu是可用的。如果再报错或者是没有用GPU计算,那大概率就是代码的问题了。

问题四:TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environme

解决办法:1.直接将这个DLL文件放在系统的环境变量中,记住,环境变量不只是到这个DLL文件的所在文件夹,是直接到改文件本身的。2.直接换一个当前CUDA版本对应的其他tensorflow-gpu版本。
先尝试1,不行就2。
其他问题就按照问题的字面意思进行修改和调整。

结语

其实还有不少问题,但是不成体系,也不是关键问题。总之这个过程很麻烦。但是工欲善事必先利其器,毕竟这是一劳永逸的事情。最终还是总结几点:
1.一定不要追求最高的CUDA版本或者是tensorflow-gpu版本,一定优先是经典的或者是被人验证过的版本组合。
2.网上的对应关系或是别人验证过的组合也确实不一定适合你的,但是至少给我们划定试验范围了。牢记一点,以此为基础,遇事不决,就先更换tensorflow版本,再不行就更换CUDA版本和tensorflow版本。版本问题真是很神奇,你也不知道为啥这个版本组合就行。
3.从以下几个层面考虑问题:版本问题–环境变量问题–安装细节问题–代码问题。

tensorflow 使用CPU而不使用GPU的问题解决 tensorflow 使用CPU而不使用GPU的问题解决 tensorflow 使用CPU而不使用GPU的问题解决 粘贴自:https://www.cnblogs.com/hutao722/p/9583214.html 今天发现一个怪现象,在训练keras时,发现不使用GPU进行计算,而是采用CPU进行计算,导致计算速度很慢。 用如下代码可检测te... 阅读详情

相关推荐

解决Tensorflow找不到GPU的问题

也就是说我现在安装的tensflow2.17.0是不支持GPU的。

Agonie22的博客 1172

tensorflow如何使用gpu

tensorflow查看GPU的数量、使用GPU加速,单GPU模拟多GPU环境等

To_be_little的博客 3万+

tensorflow2 gpu使用

本文主要介绍了tensorflow2 gpu使用,希望能对学习tensorflow的同学有所帮助。 文章目录 1. 前言 2. 设置使用cpu 3. 设置使用GPU个数 4. 设置使用GPU显存大小 5. 单GPU模拟多GPU环境

weixin_43178406的博客 1万+

tensorflow-gpu无法调用GPU; Cannot dlopen some GPU libraries. Could not load dynamic library ‘libcusolver

如果是2.0以上的tensorflow,按下面列表安装(2023年5月更新, 现在TF2.X和CUDA版本的兼容性越来越好了,不同的TF2.X版本可以匹配多个CUDA版本,下表所示是本人验证过的,不是唯一匹配方案)出现以下信息说明安装成功,由于安装的cuDNN版本是8.5.0,所以MAJOR、MINOR、PATCHLEVEL依次是8、5、0。说明只安装了CUDA,并未安装CUDA所对应的libcudnn甚至是CUDNN。去官网找到对应的libcudnn版本。我所对应的版本如图所示。

点赞的都能无bug通过! 1万+

ImportError: Could not find 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a dire

windows10安装tf-1.15出错了,当然不是新安装的python3.6.8,之前电脑恢复出厂设置了,但我发现文件夹似乎并没有删除,直接在原目录下安装的python,出现了这个问题 File "D:\python36\lib\site-packages\tensorflow_core\python\platform\self_check.py", line 55, in prelo...

NLP与推荐算法 2546

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

Tensorflow+GPU安装过程和出现的问题

之前的tensorflow的虚拟环境出现了问题,在jupyter上训练网络经常坏掉重启,试了很多方法也没搞定,有的说需要重新安装jupyter,试了一下还是有问题。于是决定新创建一个tensorflow虚拟环境:在b站上看到很多简洁版安装tensorflow-gpu版的,但是因为我之前已经安装了CUDA和cudnn,想着不想浪费,就还是按照普通方式进行安装。

weixin_63889368的博客 1893

STM32F030F4P6实战:LL库+DMA驱动WS2812全流程(附避坑指南)

本文详细介绍了如何使用STM32F030F4P6的LL库和DMA驱动WS2812 LED灯带的全流程,包括硬件选型、CubeMX配置、LL库与DMA关键实现、数据格式转换及调试技巧。特别提供了避坑指南,帮助开发者避免常见错误,提升开发效率。

weixin_29194693的博客 485

解决python中Tensorflow无法调用GPU的问题

解决python中Tensorflow无法调用GPU的问题

m0_54496525的博客 3981

WorkBuddy Skill赋能HYSYS与Comsol:AI工作台下的仿真自动化实践

AI Agent正将工业软件自动化带向新高度。在工程仿真领域,流程模拟与多物理场分析常因重复性操作而效率低下,Aspen HYSYS的批量工况调整、Comsol的参数扫描与网格重构均属此类。WorkBuddy这类AI工作台通过Skill将软件二次开发能力封装为可插拔技能包,利用HYSYS的COM/OLE接口和Comsol的Java API,实现自然语言指令到自动化执行的转变。其技术价值在于降低自动化门槛、沉淀工程经验,并支持日志审计与异常重试。在实际应用中,无论化工流程的灵敏度分析,还是激光焊接、移动网格等

weixin_29055699的博客 307

从 Junior 到 Lead:ABAP 开发者进阶路线图与真实项目练级法

本文拆解了ABAP工程师从初级到高级的成长路径,强调能力提升依赖于可复用经验的积累。对于初级开发者,建议夯实ABAP Dictionary、内表处理和数据库思维三大基础,培养数据流与规则层的结构化思维,并逐步掌握面向对象编程。中级阶段应注重代码可维护性,通过单元测试和Clean ABAP规范提升工程质量。文章指出,ABAP开发者需要学会筛选学习重点,建立知识地图,并重视团队协作中的代码可读性。关键在于将碎片知识整合为可迁移的模型,而非盲目追求新技术。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

tensorflow-gpu无法调用GPU问题

最近在跑神经网络,搭建环境时遇到了关于tensorflow-gpu安装了但却无法调用gpu(gpu利用率为0)的问题,在训练时导致CPU爆满,而GPU利用率为0。在此总结一下。

weixin_47970060的博客 8037

通用、可复用的 AI Skill 开发基本流程

-----name:唯一标识符(建议用领域-功能格式):自然语言描述触发条件(AI 依赖此判断是否激活)tags(可选):便于分类和搜索version:支持后续迭代步骤输出物1. 定范围触发场景描述2. 写元数据name3. 填内容结构化 Markdown 文件4. 做验证可运行 + 符合规范5. 去集成放入对应 IDE 目录6. 持续维护跟进框架更新通过这套流程,你不仅可以开发(Hooks 最佳实践)(原生 WebGL 优化)(Pandas/Numpy 高效写法)

lpfasd123的博客 734

解决Tensorflow使用CPU而不用GPU的问题

 之前的文章讲过用Tensorflow的object detection api训练MobileNetV2-SSDLite,然后发现训练的时候没有利用到GPU,反而CPU占用率贼高(可能会有Could not dlopen library 'libcudart.so.10.0'之类的警告)。经调查应该是Tensorflow的GPU版本跟服务器所用的cuda及cudnn版本不匹配引起的。知道问题所在...

JR_Chan的博客 1万+

实战:RK3568 Android14 点亮 LVDS 屏幕

4组数据 (D0~D3) + 1组时钟 (CLK)。最大支持 1280x800 @ 60Hz。8组数据 (Even03, Odd03) + 2组时钟。支持 1080P 及以上。/ {/* 背光与电源 *//** 关键配置:数据格式映射* 可选值: "jeida-18", "jeida-24", "vesa-24"* 6位屏选 xx-18, 8位屏选 xx-24* 颜色不对(偏色/底片效果)就换 VESA <-> JEIDA*/

qq_33427070的博客 1165

PD3.0详解 电源规则,全解!!!全解!!!

电源规则 大师匈今天谈一下PD3.0的电源规则,PD3.0标准标定的规则。 USB协议声称,为了世界和平世界环境,让大家用上统一标准的充电器,不用再为每一个用电设备都配一个专门的充电器,这些充电器各种各样的都有,所以有时候大师匈也很烦!!!那么为了维护世界和平,USB协议呢就制订了这个PD快充协议,还有它的规则,只要全世界都用PD,就解决了这个大问题。 在这里先了解一个关键字,PDP: Power Delivery Power PD电源的功率。 每个PD充电产品的功率要以0.5W的精度上报,比如大师匈做的P

大师匈的博客 1万+

tensorflow cpu版本运行,tensorflow-GPU版本安装问题

tensorflow总是报错一堆问题。都不知道从何下手,查找原因,但是总算在同学的提醒下,百度出一篇文章,解决了问题,文章链接如下: https://blog.youkuaiyun.com/llh_1178/article/details/82260819 其中h5py报错版本过低导致,提升版本: pip install h5py==2.8.0rc1 (还一度把cr1错写成了crl总是报错,找不到相关版本,...

weixin_44674677的博客 2059

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

tensorflow没有调用GPU的问题排查

暑假在陈灯老师的实验室里做实验,安装 环境时遇到不少困难,做个记录。 实验配置:Ubuntu18.042 + 两块1080ti + cuda9.0 + cudnn7.5.0+anaconda3 PS:查看版本的命令行: cuda: cudnn:$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 tensorflow:终端...

点典的博客 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jupyter notebook中使用tensorflow-gpu常常出现的问题

问题1: Kernel Restarting The kernel appears to have died. It will restart automatically 解决方法: 如果是在装有GPU的服务器上搭建的jupyter notebook,并且使用的tensorflow可以通过在session的前面加上config来解决这个问题,亲自试过可行(我觉得主要问题是在此之前都是在cp...

clever_wr的博客 5156

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

使用tensorflow-gpu 遇到的问题

1. 使用命令 tf.config.list_physical_devices('GPU') 检查GPU是否可用 遇到的问题: Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /opt/ros/melodic/lib:/usr/loca...

tiger&sheep的博客 1968

TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?

正文共:1220 字 20 图,预估阅读时间:2 分钟有了上次的经验(Windows部署TensorFlow后识别GPU失败,原因是啥?),我们这次操作就顺利多了,在保留之前环境的基础上,我们新建一台虚拟机来操作。配置稍微堆高一点,避免影响性能,配置48核CPU、128 GB运行内存(全部锁定)、200 GB系统盘,镜像使用Windows 10的19041版本。系统安装完成之后,GPU驱动没有自动...

衡水铁头哥的博客 463

关于tensorflow的gpu版本的安装问题

(不想看废话可以直接跳过前面部分。。。) 之前嫌tensorflow的gpu版本安装配置太麻烦 装cuda 还有cudnn… 然后一直用的cpu版本的tensorflow 应为之前是在学前馈神经网络而且计算量并不大 所以运行程序也不觉得怎么卡 个人觉得还过得去 最近有个图片数字串识别的任务 于是开始学习CNN 然后和之前一样嘛 继续用MNIST那个手写体识别练手 然后找了一个MNIST的卷积网...

weew12 blog 1739

解决TensorFlow GPU加载库失败问题

解决TensorFlow GPU加载库失败问题 去发现同类优质开源项目:https://gitcode.com/ README.md 资源简介 本仓库提供了一个重要的解决方案文件,旨在帮助遇到TensorFlow GPU版在运行时报告“Could not load dynamic library 'cuda”相关错误的开发者们。此错误通常发生在TensorFlow尝试访问CUDA库却未能成功的情况...

gitblog_06586的博客 1305
上一篇: 机器学习的评价指标决定系数的理解
little_cosset
博客等级 码龄7年 22粉丝 9原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值