重庆网站关键词优化推广,网站系统建设招标,申远空间设计公司,寮步建设网站1#xff0c;Pconv#xff08;来自Fasternet#xff09;#xff08;可作为模型中的基础卷积模块使用#xff09;
论文链接#xff1a;https://arxiv.org/abs/2303.03667 2#xff0c;为了大家方便的使用#xff0c;这里我对原本的PConv的代码做了部分的改动#xff0…1Pconv来自Fasternet可作为模型中的基础卷积模块使用
论文链接https://arxiv.org/abs/2303.03667 2为了大家方便的使用这里我对原本的PConv的代码做了部分的改动使得它的参数设置与Conv保持一致。大家直接将这一部分代码放到models/common.py的最后面。
import torch
import torch.nn as nn
import torch.nn.functional as F
class PConv(nn.Module):def __init__(self,dim: int,c2,k,s1,n_div2,forward: str split_cat,kernel_size: int 3) - None:super(PConv, self).__init__()self.dim_conv dim//n_divself.dim_untouched dim - self.dim_convself.conv nn.Conv2d(self.dim_conv,self.dim_conv,kernel_sizek,strides,paddingk//2,biasFalse)self.bn nn.BatchNorm2d(dim)self.act nn.SiLU()def forward(self,x):x1,x2 torch.split(x,[self.dim_conv,self.dim_untouched],dim1)x1 self.conv(x1)x torch.cat((x1,x2),1)return self.act(self.bn(x))
3在models/yolo.py中将模块名添加上大约是752行 4自己动手diy配置文件yolov7.yaml文件。
这里有一个注意事项因为PConv本身只是一个基本的卷积操作因此它并不支持下采样和通道变换操作因此为了尽可能的简单大家直接在一些通道前后没改变的地方没有进行下采样的地方使用PConv即可。