免费发布网站seo外链,网站备案的要求是,吕梁市住房与城乡建设厅网站,绿色农产品网站 模板修改C3模块的结构 一、commom.py文件解析二、修改代码#xff0c;运行train.py训练 #x1f368; 本文为#x1f517;365天深度学习训练营 中的学习记录博客#x1f356; 原作者#xff1a;K同学啊 | 接辅导、项目定制 #x1f4d5;本次任务#xff1a;将yolov5s网络模型… 修改C3模块的结构 一、commom.py文件解析二、修改代码运行train.py训练 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 | 接辅导、项目定制 本次任务将yolov5s网络模型中C3模块中的结构按照如下方式修改并跑通YOLOv5。 如左图有3个conv模块需要改为右图右图只包含2个conv模块。 提示仅需修改./models/common.py文件 步骤 1首先找到coomon.py中定义C3模块的地方 2然后将代码与上图的左图对应起来观察需要改动的位置结合结构更容易看懂代码 3找到之后按照要求修改并运行train.py看是否能跑通。 ./models/common.py中保存的是v5s各个模块的实现包括基本模块如autopad、Conv、Bottleneck、BottleneckCSP、C3、SPP、Concat、Expand和Contract和重要模块NMS、AutoShape、Detections、Classify。
一、commom.py文件解析
yolov5-master的文件结构如下
yolov5-master
|-classify
|-data
|-models (本次学习需要的文件在这里面)|-hub|-segment|-common.py(这是本次学习需要修改的文件文件内容是yolov5s各个模块的定义)|-experi,emtal.py|-tf.py...
|-runs
|-segment
|-utils
...打开common.py文件找到定义C3模块的位置
class C3(nn.Module):# CSP Bottleneck with 3 convolutionsdef __init__(self, c1, c2, n1, shortcutTrue, g1, e0.5):Initializes C3 module with options for channel count, bottleneck repetition, shortcut usage, groupconvolutions, and expansion.super().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, 1, 1)self.cv2 Conv(c1, c_, 1, 1)self.cv3 Conv(2 * c_, c2, 1) # optional actFReLU(c2)self.m nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e1.0) for _ in range(n)))def forward(self, x):Performs forward propagation using concatenated outputs from two convolutions and a Bottleneck sequence.return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), 1))这一段代码中定义了C3的模块结构初始化时定义了3个卷积结构然后在forward函数内部给出了该模块的返回值将返回值self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), 1))拆解并与给出的C3结构一一对应得到下图 由此可知去掉concat后的卷积只需要将返回值的最外层丢掉即可。
二、修改代码运行train.py训练
C3模块修改如下【注释的那行是原来的结构也就是concat后还经过了conv】 数据集水果数据集 【使用week Y2的数据集】 命令行python .\train.py --img 900 --batch 2 --epoch 100 --data .\fruit.yaml --cfg .\models\yolov5s.yaml --weights .\yolov5s.pt --device cpu【与week Y2的训练命令是一样的】
开始训练