明确YOLOv5的yaml文件中C3模块的n
总结:n只决定C3模块中Bottleneck的重复次数
以下图框起来的C3为例
下图是传参结果,经过计算后n = n_ =2
这里的n决定C3中Bottleneck的重复次数,n_用于在终端打印显示
将n=2插入到args列表的下标(从0开始)为2的位置,得到如图所示的args列表
然后重新给n赋值,使n=1,如下图所示,n_依然为2
如下图所示,
断点处生成模块及其参数m(*args)
或者模块及其参数构成的层nn.Sequential(*(m(*args)
条件语句的判断是基于n而不是n_,所以此处C3的重复次数是n=1,只生成一个C3
由上图断点处步入至C3的类,如下图所示,传入参数n=2,即Bottleneck的重复次数,上图打印出来的C3的构造也可看出Bottleneck的重复次数为2
返回至上上张图继续调试,进入下图的断点处,此处打印的是n_,不是n,所以对应的是2,但是是Bottleneck的重复次数,而不是C3的重复次数,C3仍为1
打印信息如下图所示
终!!!