YOLOV5模型架构

模型架构是按照配置文件yaml进行搭建的。不同的版本的yaml在model文件夹中,每一版本的模型分为两个部分backbone和head。
YOLOV5模型架构_第1张图片
YOLOV5模型架构_第2张图片

每一行代表了一个运算单元,这里按照YOLOV5结构图可以方便理解。每一行有四个参数,参数1:代表输入从运算单元获得,-1代表从上一个单元获得。参数2:代表该运算单元的重复次数。在yolov5中,不同版本就是控制操作单元的重复次数改变的。参数3:该操作单元的名字。参数4:输入的参数。

为了方便理解,说明yaml文件中CONV=下图的CBL,C3=下图的CSP。
YOLOV5模型架构_第3张图片
model\yolo.py可以直接运行,方便理解模型的初始化过程。
YOLOV5模型架构_第4张图片
parse_model开始按照yaml搭建每一层网络,最重要的是254行
在这里插入图片描述
m_就是初始化后的当前层的运算单元。
在model类中forward_once中定义了一次前向传播的过程,其中当当前操作单元需要两个输入时如contact,那么之前yaml文件中的第一个参数就派上用场了。
在这里插入图片描述
y是保存的是之前每一层的输出,如果当前的操作单元是多个输入,那么就按照yaml中层数取出之前的输出。

你可能感兴趣的:(深度学习)