(CVPR2025)DEIM改进HGNetv2的特征融合模块--引入不同注意力机制模块+Vscode调试技巧
文章学习来源于:
CVPR2025-DEIM|新一代目标检测SOTA|基础课程八-改进HGNetV2中的特征聚合_哔哩哔哩_bilibili
感谢作者!!!
一,将注意力机制模块添加进项目
新建文件格式如上:几个模块的代码在网上就可以找到。
二,对hgnetv2.py文件class HG_Block函数进行修改
添加一:
在__init__里面添加agg=‘se’
添加二:
对这一块代码进行修改:
原来代码是:
if agg == 'se':aggregation_squeeze_conv = ConvBNAct(total_chs,out_chs // 2,kernel_size=1,stride=1,use_lab=use_lab,)aggregation_excitation_conv = ConvBNAct(out_chs // 2,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)self.aggregation = nn.Sequential(aggregation_squeeze_conv,aggregation_excitation_conv,)else:aggregation_conv = ConvBNAct(total_chs,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)att = EseModule(out_chs)self.aggregation = nn.Sequential(aggregation_conv,att,)
修改后的代码是:
if agg == 'se':#SE注意力机制aggregation_squeeze_conv = ConvBNAct(total_chs,out_chs // 2,kernel_size=1,stride=1,use_lab=use_lab,)aggregation_excitation_conv = ConvBNAct(out_chs // 2,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)self.aggregation = nn.Sequential(aggregation_squeeze_conv,aggregation_excitation_conv,)elif agg=='ese':aggregation_conv = ConvBNAct(total_chs,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)att = EseModule(out_chs)self.aggregation = nn.Sequential(aggregation_conv,att,)elif agg == 'ema':aggregation_conv = ConvBNAct(total_chs,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)att = EMA(out_chs)self.aggregation = nn.Sequential(aggregation_conv,att,)elif agg == 'SiMAM':aggregation_conv = ConvBNAct(total_chs,out_chs,kernel_size=1,stride=1,use_lab=use_lab,)att = SimAM()self.aggregation = nn.Sequential(aggregation_conv,att,)else:raise 'agg ...'
三,对配置文件进行修改
我们需要对之前的配置文件deim_hgnetv2_s_coco_mask.yml进行修改(如果是小白还没配置的,不熟悉之前的请看我的另一篇文章:(CVPR2025)DEIM模型训练自己的数据集教程(基于Pycharm)-CSDN博客
希望给个一键三连哈哈哈^_^
)
添加:
HGNetv2:agg: ese#这里选择你想要的模块
然后就大功告成啦、
四,接下来,我还学习了怎么在vscode进行程序的调试
VSCode调试多卡PyTorch程序:launch.json配置教程-CSDN博客
首先,打开这个vsode自带的文件:
接着,修改/添加代码
对于第一处的修改,你需要在终端输入
pip show torch
去获取:torch的路径
然后在路径后面加上/torch/distributed/run.py
形成完整的路径:
" C:/Users/LYJ/AppData/Roaming/Python/Python311/site-packages/torch/distributed/run.py"
对于第二处的修改:
直接把代码增加进去
对于第三处修改:
也就是调试时要执行的命令
"args": "--master_port=7777 --nproc_per_node=1 train.py -c F:/DEIM/configs/deim_dfine/deim_hgnetv2_s_coco_mask.yml --seed=0"
#这是我的
配置完后,我们对要调试的地方打断点,点击以下两处就可以进行调试了。
PS:小提示
(1)在安装torch时,有时用清华源进行加速,他可能会给你安装cpu版本的,要小心
(2)如果遇到以下报错:就是没有读写权限,建议用管理员方式打开终端进行安装
EnvironmentNotWritableError: The current user does not have write permissions to the target environment.environment location: D:\anaconda3\envs\deim
好啦好啦,先这样吧,主包又遇到bug了,哭死......
麻烦给主包点赞鼓励哦,嘻嘻(#^.^#)