yolov5训练常见错误解决办法

Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.OMP

 

原因:使用pip install torch-1.9.0+cu111-cp38-cp38-win_amd64.whl安装的pytorch框架

anaconda下面多个虚拟环境下都有这个dll文件,要么都删掉,只保留一个,要么用另一种方法:见下面
解决办法:进入anaconda安装文件夹,搜索libiomp5md.dll,以我的环境为例,出现多个这个文件,在不同的文件夹下,但是当前运行程序环境下的这个文件肯定是两个。经过对比,发现没有安装torch的虚拟环境里面是图片1:C:\ProgramData\Anaconda3\envs\Deep-Learning-master\Lib\site-packages\torch\lib,安装了torch的虚拟环境的两个位置有这个文件:图片2:C:\ProgramData\Anaconda3\envs\yolov5-master\Lib\site-packages\torch\lib和图片3:C:\ProgramData\Anaconda3\envs\yolov5-master\Library\bin

所以我删除了C:\ProgramData\Anaconda3\envs\yolov5-master\Library\bin中的libiomp5md.dll
成功解决

另一种方法:
train.py  里面   在一大箩的导入语句后面添加
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
不要在原有的import os后面添加语句,程序会报错
而且在项目中基本上含有import os的都要添加这个语句(只是猜测,你们可以试试)因为我只加了一个文件的时候还是会报错
原文链接:https://blog.csdn.net/LHX19971114/article/details/121310528

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 2.00 GiB total capacity; 1.15 

 

网络上常用的三种方法

方法一:

仅需减小batchsize

 改文件的配置cfg的batchsize=1,一般在cfg文件下的查找batch或batchsize,将batchsize调小后,再次运行,类似于改下面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAamF2YWhhb2dl,size_20,color_FFFFFF,t_70,g_se,x_16

方法二 : 

上述方法还没解决,不改batchsize,可以考虑下面的方法的链接

不计算梯度:

ps: 在报错的哪一行代码的上面,加上下面一行代码,不计算梯度

with torch.no_grad()

不计算梯度的方法

方法三:

释放内存:链接如下

释放内存

if hasattr(torch.cuda, 'empty_cache'):

torch.cuda.empty_cache()

ps: 在报错的那一行代码的上面,加上下面两行代码,释放无关的内存

if hasattr(torch.cuda, 'empty_cache'):

torch.cuda.empty_cache()

方法四:我的解决方案

     我没用上面的方法,最主要是我是新手不知道在哪改,所以在看了好多网上的解决方案后,试了一下这种方法,可以训练了,成功解决GPU内存不足的问题

解决方法:将img-size调小

我把原本的[640,640]改为上图所示,成功解决问题
 
原文链接:https://blog.csdn.net/javahaoge/article/details/122890247

 yaml文件中    命令后面要加空格:

weights/yolov5m.pt   这种pt文件要用官方带的,复制粘贴过来改名子即可。

\VOCData\labels  里面的txt要有内容才是正常的

txt2yolo_label.py 里面的classes = ['hand', 'foot']  标签集合也要改改

 zero-size array to reduction operation maximum which has no identity  :

txt2yolo_label.py 里面的classes = ['hand', 'foot']  标签集合也要改改,基本就是各文件classes的值都不统一

TensorBoard: Start with ‘tensorboard --logdir runs\train’, view at http://localhost:6006/  如何访问

#解决无法显示的问题
#(直接在PyCharm下面的 Terminal 进入输入命令就可以了)
#第一步:进入训练目录
cd C:\Users\lare\Desktop\pythoncode\BaiduSyncdisk\yolov5-master\runs\train

#第二步:设置生成这种文件的目录(events.out.tfevents.1634282239.xxxxxx.7676.0),一般都在训练目录的下一个目录
 tensorboard --logdir=exp几几
 
#第三步:直接用浏览器打开生成的网址就可以了

 

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"val"意味着验证集(validation set),该错误通常出现在YOLOv5训练过程中,表示在代码中找不到这个关键字。 通常,在训练YOLOv5时,我们会将数据集分为训练集和验证集。训练集用于模型的训练,而验证集则用于评估模型在训练过程中的性能。 在YOLOv5训练中,我们可以指定验证集的路径,以便训练过程中对模型在验证集上的表现进行监控。然而,当出现'val'关键字错误时,这可能是由以下原因导致的: 1. 数据集划分问题:可能没有正确将数据集划分为训练集和验证集,或者指定了错误的验证集路径。 2. 配置文件问题:在配置文件中,可能没有正确地设置验证集的相关参数,例如验证集的路径、样本数量等。 3. 代码错误:在训练过程中,可能在某个代码块中使用了'val'关键字,但是没有正确定义或者不正确地使用了该关键字。 要解决此错误,我们可以尝试以下步骤: 1. 检查数据集划分:确保正确将数据集划分为训练集和验证集,并在代码中正确指定验证集的路径。 2. 检查配置文件:检查训练配置文件中与验证集相关的参数是否正确设置,包括路径和样本数量等。 3. 检查代码:仔细检查代码中是否存在使用'val'关键字的代码段,并确保正确定义和使用了该关键字。 通过以上步骤,我们应该能够解决'val'关键字错误,并成功进行YOLOv5模型的训练

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值