赞
踩
1、克隆一个全新的yolov5代码
官方代码github地址:
https://github.com/ultralytics/yolov5
使用pycharm打开该代码。
2、在yolov8里找到c2f模块的代码:
yolov8官方代码:https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/modules.py
在上图路径modules.py中找到下列C2f模块的代码,或者直接复制下方代码:
- class C2f(nn.Module):
- """CSP Bottleneck with 2 convolutions."""
-
- def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
- super().__init__()
- self.c = int(c2 * e) # hidden channels
- self.cv1 = Conv(c1, 2 * self.c, 1, 1)
- self.cv2 = Conv((2 + n) * self.c, c2, 1) # optional act=FReLU(c2)
- self.m = nn.ModuleList(Bottleneck(self.c, self.c, shortcut, g, k=((3, 3), (3, 3)), e=1.0) for _ in range(n))
-
- def forward(self, x):
- """Forward pass of a YOLOv5 CSPDarknet backbone layer."""
- y = list(self.cv1(x).chunk(2, 1))
- y.extend(m(y[-1]) for m in self.m)
- return self.cv2(torch.cat(y, 1))
-
- def forward_split(self, x):
- """Applies spatial attention to module's input."""
- y = list(self.cv1(x).split((self.c, self.c), 1))
- y.extend(m(y[-1]) for m in self.m)
- return self.cv2(torch.cat(y, 1))
-
3、打开yolov5中common.py文件
将上方复制的代码,添加到common.py文件中,如下图所示:
4、找到yolov8中对应的Bottleneck模块
将该模块的代码复制到yolov5 commom.py文件中,如下图:
修改过的 common.py 全部代码如下,可直接复制。
- # YOLOv5 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/251231推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。