我的编程空间,编程开发者的网络收藏夹
学习永远不晚

YOLOv5训练速度慢的一些解决方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

YOLOv5训练速度慢的一些解决方法

    博主电脑配置是AMD R5 3600,Nvidia RTX3060 12G,16G 3200MHz内存,训练数据集是自建数据集,大约1200张图片,3个检测目标。

    训练YOLOv5-5.0版本的模型参数设置,模型是yolov5s,epoch 150(如果想要更好的mAP@0.5:0.95指标可以设置的更大,博主这个收敛的太快了就没设太多),batchsize 32或者64,imgsize 640,640,其他均为默认。

    在最初训练模型的时候训练一次epoch大约需要3分钟,而且不管怎么设置参数,训练时间都不会改变太多,都在3分钟左右,博主期初是因为自己没用GPU跑,但是显存是实实在在的吃满了,但利率用始终在0%和4%之间波动,大多数还是在0%,博主百思不得其解,百度了许多方法都没有用,看了大部分博主的文章,然后看了看运行时候的内存,CPU和GPU,发现CPU使用率不高,但是内存和显存占用很高,那么也就排除了在用CPU跑模型的情况,思来想去大概是出在数据读取上。下面来介绍一些训练模型速度慢可能的原因和解决方法:

    1.GPU太差

    博主之前用的自己的GTX960m的确跑不起来,如果自己显卡太老,显存太低,要么降低batchsize和worker,还有imgsize,要么就换一张显卡。三个参数的设置在train.py的设置代码如图

    2.没用到GPU,完全是CPU在跑

    这种情况也很好发现,只需要看看显存是否被占用或者有没有安装pytorch和cuda,可以用如下代码来查看是否装了pytorch和cuda,怎么安装很多博主已经介绍过了,随便一查一大堆。

import torchprint(torch.__version__)torch.cuda.is_available()

    上面代码结果如下图,说明正确安装CUDA和pytorch(记得要版本对应,不然会报错)最好把cudnn也装上。

 

    如果是CPU在训练,可以设置下面的代码来更换GPU训练模型,default设置成你GPU的编号就行,单显卡就是0。

    3.训练瓶颈

    3.1 CPU瓶颈

    CPU瓶颈很好判断,那就是CPU占用率很高,同时GPU也在使用,这说明电脑CPU太差了。设置参数,尽量不让CPU占用率超过85%。

    3.2 内存瓶颈

    简单来说就是内存爆了,基本上不存在内存频率跟不上的,同样设置参数,内存占用也尽量不要超过85%-90%。

    3.3 IO瓶颈

    这种情况会复杂很多,这个IO可能是硬盘读到内存导致的,也有可能是从内存到GPU导致的,也有可能是读写记录的时候导致的,反正杂七杂八的,最难看出哪里出了问题。

    对于以上三种瓶颈可以通过瓶颈测试工具来测试出来,具体方法下面的博客说的很清楚。

(24条消息) PyTorch消除训练瓶颈 提速技巧_*pprp*的博客-CSDN博客

    对于前两种瓶颈,都可以通过设置batchsize,workers和imgsize来尝试解决,或者更换yolov5的模型,使用最小的yolov5s来训练,如果以上方法解决不了,建议更换硬件或者租用云服务器。对于第三种情况基本只能通过预读取数据和更换硬件来实现。

    4.性能过剩      

    对,你没有看错,性能过剩也会导致Yolov5训练速度过慢,原因也很让人无语,在train.py中有这样一行代码,这行代码旨在将数据读到内存中进行缓存,这样就可以更快的存取数据。

    这样读取数据就可以让正在工作的GPU计算完数据后不会因为硬盘读写太慢而等待数据读入,所以硬盘的读取很重要,训练过程中,数据首先从硬盘读入到内存,然后再从内存读取到CPU或者GPU,所以一块好的硬盘可以有效的加速模型的训练,特别是笔记本硬盘,笔记本硬盘读取速度很慢建议把数据放入SSD中。那么问题来了,如果GPU计算速度超过了从硬盘读入内存,再从内存读入GPU的速度,并且硬盘的读取速度够快,会发生什么,这也是导致博主训练速度太慢的原因。

    对于小批量数据(很多自建数据都是小批量数据),一两千张,检测目标数不多,模型不复杂的情况下,对于高端显卡或者专业图形卡都是小case,基本都用不到多少算力,GPU很快就计算完了一个batch的数据,这时候就要等待数据读入,如果硬盘读写够快,数据从硬盘读入内存,GPU再从内存读出,相较于直接从硬盘读入GPU,本来用作缓存的内存反而成了额外的开销,数据绕了远路,IO读取时间反而增大了。其实说白了还是IO问题造成的,只不过原因不是硬件太差。当然,以上内容是博主的猜测,仅供参考。

    所以,对于拥有一个好的SSD,好显卡,内存和CPU性能好的计算机而言,在训练数据量小,模型不大的情况下,建议将cacheimages关掉,直接从硬盘读入GPU,将action='store_true'替换为action='store_false'即可,关掉之后博主一次epoch从3分钟变成了20s,提升巨大,而且训练结果没有改变。

    总结

    大多数情况来说都是性能不足,存在瓶颈的情况,从而导致模型训练时间长,这也是深度学习中常有的事,但是在自己硬件条件好,数据量不大的情况下,模型训练仍然慢,就该考虑下是不是因为性能过剩,在数据存取上花了过多的时间造成的,这表现为内存和显存使用很大,但是CPU和GPU却不怎么占用经过博主一些测试,博主发现不管有没有用缓存,内存和显存使用都很大,这应该是pytorch底层逻辑的关系,在用GPU跑模型的时候pytorch会自动把数据缓存到显存里,内存使用大小仅仅和batch_size有关。

    值得一提的是,虽然训练速度大大增加,但是依然没有解决GPU占用率低的问题,虽然GPU占用率很低,但是不会存在一段时间为0的情况,博主推测,可能是因为数据量太小,所需要检测目标数不多造成计算量太小的原因。博主之前在用VOC2012数据集进行训练时,GPU占用率就不低,但是仍然只占用了30%-60%,不知道使用这种方法有没有效,因为学业问题只能先跑自己数据集,如果有时间博主会更新相关结论。

    最后,博主计算机功底不算扎实,如果有问题,希望各位读者指正。

来源地址:https://blog.csdn.net/weixin_54048889/article/details/127934092

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

YOLOv5训练速度慢的一些解决方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

云服务器速度慢的解决方法

1.检查网络连接首先,你需要检查你的网络连接是否正常。确保你的云服务器和你的本地设备之间的网络连接稳定。你可以尝试使用其他设备连接云服务器,或者使用其他网络连接来排除网络问题。2.优化服务器配置如果你的网络连接正常,那么你可能需要优化你的云服务器配置来提高速度。以下是一些可能的优化方法:升级服务器规格:考虑将服务器升级
云服务器速度慢的解决方法
2023-10-28

python中pipenv安装速度过慢的解决方法

这篇文章给大家分享的是有关python中pipenv安装速度过慢的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyth
2023-06-14

IE浏览器启动速度慢解决方法

IE浏览器启动速度慢的原因有很多,解决方法如下:1. 清理浏览器缓存和临时文件:在IE浏览器的设置中,找到“Internet选项”,在“常规”选项卡中点击“删除”按钮,勾选“临时文件”和“Cookie和网站数据”等选项,然后点击“删除”按钮
2023-09-05

云服务器速度慢怎么解决方法

检查网络连接,确认是否网络连接正常,可以尝试重启路由器或者更换路由器,或者查看路由器的登录账户和密码是否正确。如果您的云服务器是用来存储您的数据,请确保您的数据安全性,不要在云服务器上存储敏感数据,如用户ID、密码等。查看云服务器系统设置是否合理,如果您使用的是DNS服务,确保您的云服务器能够正确解析DNS,如果云服务器无法解析DNS,可能会导致连接速度变慢。如果您使用的是公共云服务器,可
2023-10-26

win10系统电脑运行速度慢的解决方法

win10系统已经逐渐成为主流的操作系统了,但是用久了总会出现一些问题,比如系统运行速度变慢的情况。相信不少朋友都遇到过win10系统电脑运行速度慢的问题,那么win10电脑运行速度慢怎么办呢?一些朋友不了解处理方法,下面我们就来看看win
2023-07-10

Python访问MySQL数据库速度慢的解决方法

本篇内容介绍了“Python访问MySQL数据库速度慢的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python可以做什么Pyth
2023-06-14

亚马逊云服务器速度慢的解决方法

1.优化服务器配置首先,你可以通过优化服务器配置来提高亚马逊云服务器的速度。以下是一些可能的解决方案:升级实例类型:考虑将实例类型升级到更高性能的实例,以提供更快的处理速度和更好的性能。增加实例数量:如果你的应用程序需要更多的计算资源,可以考虑增加实例数量来分担负载,从而提高整体性能。调整存储类型:根据你的需求,选择适当的存储类型,如SSD或HDD,以提高读写速度。优化网络设置:确保网络设置正确,包...
2023-10-27

云服务器速度慢的解决办法

1.优化服务器配置检查服务器的配置是否合理,包括处理器、内存、硬盘等。如果服务器配置较低,可能会导致性能下降。可以考虑升级服务器配置,以提高服务器的处理能力和响应速度。2.优化网络连接网络连接是影响云服务器速度的重要因素之一。可以采取以下措施来优化网络连接:使用高速、稳定的网络服务提供商,确保网络连接质量良好。检查服务器的网络设置,确保网络配置正确。使用负载均衡技术,将流量分散到多个服务器上,以提高整...
2023-10-27

云服务器速度慢怎么办解决方法

1.优化服务器配置服务器配置是影响服务器速度的重要因素之一。如果服务器配置不足,可能会导致服务器速度变慢。因此,优化服务器配置是提高服务器速度的一种有效方法。可以通过以下方式来优化服务器配置:增加服务器内存和处理器核心数使用高速硬盘,如SSD优化服务器操作系统和软件配置2.使用CDN加速CDN(内容分发网络)是一种通过在全球各地部署服务器来加速网站访问速度的技术。使用CDN可以将网站的静态资源(如图片...
2023-10-27

win8.1网速慢比升级前变得慢了一些的原因及解决方法

win8.1网速慢怎么办?window xp退役后很多人安装了win8.1,但是大家觉得网速会比升级前变得慢了一些。下面哥教大家win8.1系统网速慢解决办法,一起来看看吧!原来win8.1网速慢的原因是windows8.1中默认增加了应用
2022-06-04

Node.js中下包速度慢问题解决方法分析

这篇文章主要介绍了Node.js中下包速度慢问题解决方法,分析了npm切换镜像源以及nrm工具镜像源管理相关使用技巧,需要的朋友可以参考下
2023-05-15

WordPress打开速度非常慢的解决办法

今天,特带来了5个实例技巧,至少可以帮助朋友们在减少wordpress博客的负荷上起到一点点作用吧,下面和网友们一起分编程客栈享一下。 实例一、在特定的页面加载特定的js和css:在某些特定页面,比如,您在wordpress博客的新建了ab
2022-06-12

阿里云服务器速度慢的原因及解决方法

#在使用阿里云服务器时,有时会遇到速度慢的问题。本文将探讨阿里云服务器速度慢的原因,并提供一些解决方法,帮助用户提高服务器性能。速度慢的原因:阿里云服务器速度慢可能有多种原因,以下是一些常见的问题:网络带宽限制:阿里云服务器的速度受到网络带宽的限制。如果您的网站或应用程序需要大量的数据传输,而服务器的带宽不足,就
阿里云服务器速度慢的原因及解决方法
2023-12-31

亚马逊服务器速度慢的原因及解决方法

1.原因分析亚马逊服务器速度慢的原因可能有很多,以下是一些常见的原因:1.1网络拥堵亚马逊服务器是全球最大的云计算服务提供商之一,其服务器数量众多,但是在高峰期,服务器的网络带宽可能会受到限制,导致网络拥堵,从而影响服务器的响应速度。1.2服务器配置不足如果你的应用程序需要处理大量的数据或者需要进行复杂的计算,那么可能需要更高配置的服务器才能满足需求。如果你使用的是低配服务器,那么服务器的响应速度可能会受...
2023-10-27

WinXP窗口显示速度变慢的原因及解决方法

WindowsXP使用久了,有用户发现打开窗口,要等很久才js能php完全显示。这是怎么回事呢?原因就是系统没及时优化和硬件老化。XP需要优化系统了,如python何解决打开窗口速度慢呢?按下快捷键Win+R,打开运行对话框,输入reged
2023-06-10

QQ正常登录访问速度却很慢的解决方法

  虚拟专用网络功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密以及数据包目标地址的转换实现远程访问。今天就跟着小编一起来看一看,VPN网络:QQ正常登录访问速度却很慢的解决方法。  在我们的实际生活中,相信大家在VPN组网里面经常都会遇到下面几类的问题,具体的问题如
QQ正常登录访问速度却很慢的解决方法
2024-04-18

win8系统网速慢的解决方法

win7/Vista/XP时代,默认限制是20%,对于我们这些百兆js网卡以上用户可以说是几乎没有影响,但是网上确流传修改那个QOS可以提高网速。win8时代,居然默认限制80%!这就是真心坑爹了!影响不是一般的大!我修改完了以后,打开网页
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录