一.找到需修改的层
所有多输入1输出的concat函数名称:
Concat_110 Concat_215 Concat_234 Concat_253 Concat_255
二.修改思路
以修改多输入单输出concat函数为例:
在Yolov5源码中,Concat
层是由models\common.py
文件中的Concat
类实现的。在YOLOv5模型中,Concat
层通常用于将多个分支的特征图进行拼接。拼接方式为:
m = nn.Sequential(
# ... 其他层 ...
Concat(3, 4), # 这将来自索引3和4的特征图进行拼接
# ... 其他层 ...
)
因此想要修改concat函数输入部分,需要搜索Concat
的实例化,找到每一个实例对应的输入特征图索引的值与个数。
三种思路:
1.修改训练所用的yaml文件,在该在yaml文件中重新定义网络结构,拆分多输入concat层为2输入。然后重新训练
2.修改models\yolo.py,在该文件中重新定义concat函数,使得实例中输入层数超过2时concat函数内部做一次拆分处理。(f