【YOLOv5】一些网上找不到答案的报错解决方案

发布时间 2023-08-16 15:40:49作者: 白日梦想家-

AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解决方法

原因

一般是由于数据集的标签文件出现的类别数与自己设置的nc类别数不符。
例如我原本要检测5类目标,则标签序号为0、1、2、3、4,nc数设置为5,如图:
自定义的yaml文件

而‘4’这一类mAP太低,所以想去掉,于是只把nc数改为4,所以出现报错。

解决方法:(以我的情况为例)

方法1.nc数改为4,再把标签文件里所有‘4’类删掉;
方法2.还按nc数为5训练,最后mAP不计算‘4’类即可。

RuntimeError: result type Float can‘t be cast to the desired output type long int

原因

版本错误

解决方法

1.打开【utils】→【loss.py】;
2.ctrl+f搜索anchors = self.anchors[i],将其替换为:anchors, shape = self.anchors[i], p[i].shape替换效果:
在这里插入图片描述

3.ctrl+f搜索indices.append,将那一行代码替换为indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1))) # image, anchor, grid,替换效果:
在这里插入图片描述
4.保存运行,问题解决。

ImportError: libgthread-2.0.so.0: cannot open shared object file:

控制台执行两条命令即可:
apt-get update apt-get install libglib2.0-dev

tensorboard :No dashboards are active for the current data set.

问题描述

训练过程中想用tensorboard查看,但在IDE中打不开,显示如图:
在这里插入图片描述
自己复制地址到浏览器打开,干脆变成这样:
在这里插入图片描述

解决方法

找到events文件,我使用的是YOLOv5 6.0,events文件在runs/teain/exp文件夹下,如图:
在这里插入图片描述
当然不同的exp如exp、exp2、exp3等等对应了不同的实验,每次实验都对应一个或多个(使用resume的话)events文件,找到你想打开的那一个,例如我想查看第二次实验(即exp2)的数据,则:

tensorboard --logdir runs/train/exp2

打开弹出的网址即可发现问题解决:在这里插入图片描述
注:本人使用的是云GPU,如果有一样的朋友需要注意,不能通过云GPU平台的terminal运行上述命令,否则还是没用。