最先开始选择的是刚出炉新鲜的YOLOV7算法,训练时没有问题,但是在最终测试时,发现检测不出来任何的bbox,开始以为是没有训练好,但是发现训练时的validation都有bbox。最后决定还是老实采用YOLO V5算法(为什么不选美团的YOLO V6?YOLO V6在论文外的数据集,表现还没有YOLOV 5好,大家dddd),不过使用YOLOV5 时又发现了...
2、转换数据格式 接下来准备labels,把数据集格式转换成yolo_txt格式,即将每个xml标注提取bbox信息为txt格式,每个图像对应一个txt文件,文件每一行为一个目标的信息,包括class, x_center, y_center, width, height格式。格式如下: 创建voc_label.py文件,将训练集、验证集、测试集生成label标签(训练中要用到),同时...
结果发现,跑出来的图 什么都没有,box loss 什么的一直nan 换个电脑 重复步骤,conda还是在新环境装不了pytorch,用pip安装网速巨慢,所以直接访问终端下载地址下载,之后pip install 把文件拖到终端直接安装 装完发现依旧跑不了 报错应该和torchvision有关 : Starting training for 100 epochs... Epoch GPU_mem box_...
说一下我在应用中的事:yolov3它的训练轮数是50200,我的数据量比较小,因此迭代到900轮的时候,每一轮训练完显示的损失值都是nan,其原因可能就是上边因为阈值他直接忽略掉了这个bounding box导致没有loss,之前的版本我使用时貌似不是这样的。 1.2 分类(Class Prediction)每个框预测分类,bounding box使用多标签分类(...
yolo train data=coco128.yaml Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 1/100 2.89G nan nan nan 240 640: 25%|██▌ | 2/8 [00:05<00:17, 2.96s/it]^C GPU: NVIDIA T1000 CUDA: CUDA Version: 11.6 Nvidia driver: 510.108.03 ...
1、训练的时候出现box_loss、cls_loss、dfl_loss都为nan的情况,需要将训练的时候的参数进行修改,设置amp=False 2、修改之后训练的时候出现P、R、map值为NAN或者非常小,一般来说基于预训练模型来进行训练P、R、map的值都不会很低,如果出现0.0x这种一般是有点问题,这种情况可以尝试以下操作,需要到ultralytics/cfg...
有16张图片bbox都为0,我去查看了对应的jpg,是背景图,进行了标注但是没有任何bbox的信息,yolov3的训练是不支持这样的图片的。 剔除了这16张图片对应的jpg和lables信息,重新生成了train.txt文件后,就可以正常训练了。 三 训练过程可视化 yolo会输出中间训练过程的值,但是我们想得到更全面的信息比如loss跟iou曲线的...
的结果是虚数i,但在DL相关的框架,该操作会直接造成nan,造成损失函数无法优化,而且相应代码的书写更为复杂。而采取直接以取根号后的形式我们只要在获取输出时,再将wh求一个平方即可。另外要说的一点就是IOU误差,虽然很多文章都将这一点直接成为IOU误差,实际上计算时IOU误差和置信度的结合。def_iou(self, box...
When I use cuda8.0, I run the yolov3 script using 2 GPUs, just changing the batch-size to 32, I got the loss nan: INFO:root:[Epoch 0][Batch 99], LR: 5.99E-05, Speed: 31.597 samples/sec, ObjLoss=nan, BoxCenterLoss=nan, BoxScaleLoss=nan, ClassLoss=nan INFO:root:[Epoch 0][...
模型的训练我们采用多尺度图片输入进行训练,来使得模型具有尺度的鲁棒性,这里要提一点,如果是通过每次输入图片的时候来随机选择尺度方式输入(即YunYang代码中的方式)来多尺度训练,训练中的loss容易出现nan,为了避免这个问题可以在每个batch之间随机选择尺度而不是每个batch内来随机选择尺度。