关于CBAM
Closed this issue · 2 comments
您好,我使用的是u版的yolov3最新版的代码,结构与v5一致,只是我导入的模型是yolov3.yaml。我需要在里面插入CBAM,结构大致如下
可是,这样插入后,mAP反而下降了1-2个
训练集上的loss一直在降,但是要比没有加入CBAM的loss大很多
测试集的loss倒是一直在下降,而没有加CBAM的原模型早早的就收敛甚至有些过拟合了
您的yolo代码那边没有Issue,所以很抱歉在这边打扰您。我看您也引入了CBAM,并且引入的方式与您的blog已经有了些调整,所以冒昧的请教一下您,我这边应该如何调整。
另外,我在yolov4那边大约看到yolov4中的SAM大约能提高0.几到2以内的mAP的提升。您自己有跑过引入CBAM的训练么,请问您得到了多少提升?
您好,我使用的是u版的yolov3最新版的代码,结构与v5一致,只是我导入的模型是yolov3.yaml。我需要在里面插入CBAM,结构大致如下 可是,这样插入后,mAP反而下降了1-2个
训练集上的loss一直在降,但是要比没有加入CBAM的loss大很多
测试集的loss倒是一直在下降,而没有加CBAM的原模型早早的就收敛甚至有些过拟合了
您的yolo代码那边没有Issue,所以很抱歉在这边打扰您。我看您也引入了CBAM,并且引入的方式与您的blog已经有了些调整,所以冒昧的请教一下您,我这边应该如何调整。 另外,我在yolov4那边大约看到yolov4中的SAM大约能提高0.几到2以内的mAP的提升。您自己有跑过引入CBAM的训练么,请问您得到了多少提升?
你好 ,最近项目比较忙,感谢你的提问,我看到了我后面会自己去研究下,目前关于CBAM我的实验结果并不理想 在公开数据集上是掉点的我记得BLOG我很早就说过了,所以大概半年前我引入了额外的注意力插件,目前来看坐标注意力插件在小模型的数据集上是提升的,我过几天会放出一些网友提供的实验数据整理,我的经验是提高0.1左右,那么 引入的训练周期增多和模型开销是不值得的,这里是我的一些经验:
1.注意力机制大概率会减缓你的收敛速度,大概是由于这样的参数引入加大了训练难度:因为在训练中权重的贡献度也是需要考量的,我们利用CNN和池化去做通道信息和空间信息的整合但是一直没考虑训练过程中,权重信息需要有一个类似于惩罚正则化的形式去稀疏,大部分的SE或者CBAM之类的注意力层,只是做了抑制从而变向提升,可能加强显著的通道特征会有改善。这跟FOCAL LOSS的道理很像。。
2.根据你的数据场景分布定制会更好,比如你的数据检测目标都是小目标的尺度,这时候可能会有提升,这些提升一般在1%左右
@positive666 感谢您的回复,我在很多地方看到大家都想加入CBAM,但是鲜少看见有确实提升的。我这边的研究重心并不在yolo,但是我需要把attention map作为显著性分析的结果用于另一方面的研究,所以我需要空间上的attention map,从而选择了比较简单的CBAM。而yolov4中引入了删减版的cbam--sam,其结果也得到了一些提升,所以我仍然相信CBAM对yolo是有积极作用的。
我在可能是您的blog回复或者其他地方有看到在CBAM部分加入残差连接也许有帮助,但是我的水平有限,参考Bottleneck部分的shortcut,在CBAM的return处,直接将x与原本要返回的结果相加,然后重新进行训练,尚不确定是否有效