一.yolov5模型结构与构建原理
修改模型结构,全部在models文件夹下面
models/common.py (加入新增网络细节)
models/yolo.py (设定网络结构传参细节)
models/##.yaml (修改模型结构配置文件)
上一篇博客用的自己标注的火影的数据集,修改的是data
data/##.yaml,
然后把数据集datasets放进项目里面
没有修改模型本身
1.用tensorboard可视化来理解模型结构:

进入到group图
综合上面的3个图,我们可以这样总结:
(1)每经过一个卷积conv,特征图/2(2)每一层都有层数标号,从0开始,这个标号非常重要,决定了特征融合是哪一层和哪一层融合(相同大小的特征图才能彼此融合)
(3)最后是融合之后的17,20,23层成为3种size的特征头
2.理解深层逻辑
(1)在train.py里面找到#model
我们只关注最后一行,给model传的参列表
cfg:对应yolov5s.yaml文件
ch:通道数为3
nc:原始类别数,修改yaml会对其更新
(2)进到Model里面看看实现
会发现这个Model其实等于DetectionModel的返回值
yolo.py:
(3)进入DetectionModel看看具体实现
会发现竟然跳到了yolo.py里面来 惊!
还记得文章最前面