mmdet与pytorch新建卷积层

两个框架均可以新建卷积层

mmdet调用并再次封装了pytorch

一、pytorch

torch新建卷积层,通过nn模块,通常是conv2d,batchnorm2d,relu三件套,即卷积、归一化、激活。

    def dilate_conv(self):
        layers=[]
        layers.append(nn.Conv2d(64,64,kernel_size=3,stride=1,padding=1,dilation=1))
        layers.append(nn.BatchNorm2d(64))
        layers.append(nn.ReLU(inplace=True))
        return nn.Sequential(*layers)

Conv2d的参数含义依次为:

输入特征通道,输出特征通道,卷积核尺寸,stride,pding,dilation

dilation用于设置膨胀卷积,默认值为1,dilation为1时即为普通卷积

BatchNormd的参数,通常只写一个,即输入通道数,输出和输入一样

relu不需要参数。

二、mmdet

mmdet新建卷积层通常用ConvModule模块

conv_module = ConvModule(
                self.in_channel,
                feat_channel,
                3,
                padding=1,
                conv_cfg=dict(type='DCNv2') if self.use_dcn else None,
                norm_cfg=dict(type='BN'))

该模块和nn三件套等效,包含了卷积、归一化、激活

上述代码中,特殊之处在于conv_cfg,这里设置的是DCNv2,即可变卷积

norm_cfg为归一化配置,这里也是batchnorm

激活层默认为relu,可以不写。

PyTorch中的卷积层是神经网络中常用的一种层类型,用于处理图像和其他多维数据。卷积层通过对输入数据进行卷积操作来提取特征,并生成输出特征图。卷积操作是指将一个滤波器(也称为卷积核)与输入数据进行逐元素相乘,并将结果相加得到输出特征图的过程。[1] 在PyTorch中,卷积层的相关参数包括输入通道数、输出通道数、卷积核大小、步长和边缘填充等。输入通道数指的是输入数据的通道数,例如RGB图像的通道数为3。输出通道数指的是卷积层输出的特征图的通道数,通常可以理解为卷积核的个数。卷积核大小指的是卷积核的尺寸,例如3x3的卷积核。步长指的是卷积操作在输入数据上滑动的步长,用于控制输出特征图的尺寸。边缘填充是指在输入数据的边缘周围填充额外的像素,以保持输出特征图的尺寸与输入数据相同。[2] 在使用PyTorch卷积层时,可以通过定义一个继承自`nn.Module`的神经网络类,并在其中定义卷积层的相关参数来创建卷积层。例如,可以使用`nn.Conv2d`类来定义一个二维卷积层,并指定输入通道数、输出通道数、卷积核大小、步长和边缘填充等参数。然后,在神经网络的前向传播方法中,可以通过调用卷积层的`forward`方法来进行卷积操作,并返回输出特征图。[3] 总结起来,PyTorch中的卷积层是用于处理图像和其他多维数据的一种神经网络层类型。它通过卷积操作来提取特征,并生成输出特征图。在使用PyTorch卷积层时,需要定义相关参数,并在神经网络的前向传播方法中调用卷积层进行卷积操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值