yolo如何降低loss_YOLO训练自己的数据集的一些心得

本文分享了使用YOLO训练自定义数据集时的心得,包括训练中断后的继续训练、GPU加速、损失(loss)优化、模型保存与测试、数据预处理等方面的经验,强调了正确配置文件和调整学习率的重要性,并提供了训练日志中关键指标的解释。
摘要由CSDN通过智能技术生成

-------------------------------------------------------------------------------------------------

训练心得

1. 在yolo中训练时,修改源码文件detector后需要make clean 后重新make,修改cfg文件后不需要

2. 很多博客中会要求修改src中的yolo.c文件,其实那是早期的版本中训练要求的,darknet不需要。原因是这样的,在官网里有一段执行test的代码是:

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg

这是一段简写的执行语句。它的完整形式是这样的:

./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg

其实修改.c文件的作用就是让我们可以使用简写的test执行语句,程序会自动调用.c里面设置好的路径内容。我个人觉得这个很没有必要。

3. 当有多块GPU时,如果选择不同的卡进行训练时,输入以下命令:0或者1表示GPU的序号

./darknet detector -i 0 test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_final.weights testpicture/001.jpg

4. 生成的最终的final模型与中间模型没有太大区别,中间模型是不同数量的数据样本进行训练得到的。final其实就是max_batch训练完之后的那一个

5. 当训练过程中需要输出log文件即日志文件时,需要在训练时一起输出,补充以下命令:

./darknet detector train cfg/tiny-yolo.cfg tiny-yolo_8000.conv.9 2>1 | tee person_train_log.txt

命令:tee person_train_log.txt  :保存log时会生成两个文件,文件1里保存的是网络加载信息和checkout点保存信息,person_train_log.txt中保存的是训练信息。

6. 当选取.cfg网络,在darknet官网还有很多博文里面都是用的yolo-voc.cfg,我用这个网络训练一直失败。体现在训练好久后test,没有bbox和predict结果。出现这种问题有两种情况,一是训练发散了;二是训练不充分,predict结果置信概率太低。

(1)对于训练发散

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值