1,本文介绍
本文将利用YOLOv9的ADown模块改进卷积。
关于ADown的详细介绍可以看论文:https://arxiv.org/abs/2402.13616
本文将讲解如何将ADown融合进yolov8
话不多说,上代码!
2, 将ADown融合进yolov8
2.1 步骤一
找到如下的目录'ultralytics/nn/modules',然后在这个目录下创建一个ADown.py文件,文件名字可以根据你自己的习惯起,然后将ADown的核心代码复制进去。
import torch
import torch.nn as nn
__all__ = ['ADown']
def autopad(k, p=None, d=1): # kernel, padding, dilation
# Pad to 'same' shape outputs
if d > 1:
k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k] # actual kernel-size
if p is None:
p = k // 2 if isinstance(k, int) else [x // 2 for x in k] # auto-pad
return p
class Conv(nn.Module):
# Standard convolution with args(ch_in, ch_out, kernel, stride, padding, groups, dilation, activation)
default_act = nn.SiLU() # default activation
def __init__(self, c1, c2, k=1, s=1, p=None, g=1, d=1, act=T