深度学习Y5周:yolo.py文件解读
- 🍨 本文为🔗365天深度学习训练营中的学习记录博客
- 🍖 原作者:K同学啊
一、前言
文件位置:./models/yolo.py
此文件是实现YOLOv5网络模型的搭建文件,如果想改进YOLOv5,这个文件是必须进行修改的文件之一。虽然文件内容看起来多,但真正有用的代码不多,重点理解一个函数两个类。
本周任务:将YOLOv5s网络模型中的C3模块按照下图方式修改形成C2模块,并将C2模块插入第二层与第三层之间,且跑通。
任务提示:
①需要修改common.yaml、yolo.py、yolov5s.yaml文件
②C2模块与C3模块是非常相似的两个模块,要插入C2到模型中,只需要找到C3模块在哪,然后在其附近加上C2即可。
二、导入需要的包和基本配置
三、parse_model函数
用于 将模型的模块拼接起来,搭建完成的网络模型。后续如果需要改动模型框架,需要对这个函数做相应改动。
四、Detect类
构建Detect层,将输入feature map通过一个卷积操作和公式计算到我们想要的shape,为后面的计算损失或NMS做准备。
五、Model类
整个模型的搭建模块,yolov5内容很全,不光包含模型搭建,还扩展了很多功能:特征可视化、打印模型信息、TTA推理增强、融合Conv+Bn加速推理、模型搭载NMS功能、autoshape函数、模型包含前处理、推理、后处理的模块(预处理+推理+NMS)。
六、任务
1.在common.py文件中构建C2模块
2.在yolo.py文件中的parse_mdoel模块增加C2模块(两处)
3.在yolov5s.yaml文件中增加C2模块
4.运行
很奇怪就是没有添加上C2模块,希望有大佬能帮忙解答。
七、总结
每一步都大致学懂了,包括后续添加C2模块,但是步骤和代码应该都没问题,但就是没有添加上C2模块。搞了很久,也还是不显示。因为不出现,导致学习记录都很暴躁。