mmdetection平台下的检测器12次就能训练完了,但是yolov5要训练300次这么多,我的gpu显存24g,yolov5能达到64个batchsize,但是在mmdetection下面16个batchsize就爆了,而且yolov5的每个epoch训练起来都好快,只要几分钟
mmdetection没试过,但是yolov5默认300多次是因为人家是在coco数据集上面训练的,而你看yolov5的主页,里面的各个模型的对比可以看出来,基本上都是300epoch的时候达到较好的效果,之后收敛速度变慢,效果不大。如果你训练自己的数据集,你看看loss,P,R和mAP,这些数据达到稳定之后基本上就可以停止了,并不需要300epoch。16个epoch就爆,具体没用过,我猜测估计应该是用空间换时间吧,或者哪里优化没弄好。
1. yolov5为何训练快?看代码label-assign,是yolov3-4的最少三倍。
2. mmdet为何比原版yolov5训练慢?因为mmdet大量的使用for循环(就是multi_apply函数),而U神大部分直接使用广播机制。同样的mmdet可阅读性很强,U神的代码阅读和移植性很差(相对来说)。
3. mmdet训练次数少?1)因为其对数据集采用repeat操作。2)和超参数有关。3)根本还得看结果
4. 我已经把yolov5的所有模块移植到mmdet中了,并加了yolov4的一些功能,增加多任务等操作,欢迎交流。