yolov5 训练改Focal loss 产生了几个问题,这是什么情况
1、收敛速度变慢,训练速度变慢,比初始loss慢4倍左右(正常需要1.6h、100epoch,加了之后需要7h、250epoch)
2、训练过程经常会出现nms超时警告
3、对长尾数据集map不升反降,大概降低3-4%
请问大家这些是什么原因
看下你的loss是怎么修改的,变慢这回事是很正常的事情,特别是学习率,或者loss的计算方式修改,都会导致你这里面的问题。
至于nms超时,一般是会在前几个或者十几个epoch出现,表示此时模型找到的结果框很多(loss修改差的情况下,权重优化不好也会这样),计算超时。一般正常稳定下来之后,预测框减少就不会了。或者你可以修改nms的耗时限制,多加一些时间,这都可以解决这个警告。
建议你先使用ce loss训练10-20个epoch后再换focal loss,一开始就上focal loss(在训练开始阶段,loss值高的不一定是难样本,loss低的也不一定就上易样本),这会导致模型收敛不精准波动较大。
nms超时警告也是由于focal loss预测出的框太多才导致的。
对长尾数据集map不升反降,大概降低3-4%???这个较难解释,如果是少数类的查准率变低或召回率变低,可以理解为focal loss的副作用,其过度提升难样本的loss,需修改focal loss中的权重