1.接口定义
class torch.nn.Conv2d(
in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1,
groups=1,
bias =True,
padding_mode='zeros')
- in_channels(int):输入图片通道数(灰度图为1,彩图RGB为3)。要与上一层的输出保持一致
- out_channels(int):输出图片通道数(卷积核种类数,学习几种特征)
- kernel_size(int or tuple):Size of convolving kernel.正方形为int,矩形为tuple
- stride:卷积核移动的步长,默认为1
- padding:卷积是否造成尺寸丢失(四周加不加格子),1表示不丢失,默认为0(由于kernel=1,stride=1时,新图=原始大小)
- padding_mode: 选择padding的方式,默认’zeros’加0
- dilation:Spacing between kernel elements. Default=1. kernel间距 增加感受域同时计算量不变,保留更多细节+图像精度提升
- groups:Number of blocked connections from input channels to output channels. Default: 1. 卷积层参数,将卷积层的输入&输出分组。分组的输出通道由对应组的输入通道进行计算。groups要求是in和out的公因数,因为涉及分组,必须整除
- bias: if True,add a learnable bias(偏移量) to output.default=True
2.in_channels(int)参数的理解
in_channels
是卷积层的输入通道数。和上一层的输出通道数相匹配。如果输入为原始数据的灰度图(黑白),则通道数=1;如果为彩色图RGB,输入通道数为3.
3.out_channels(int)参数理解
out_channels
是卷积层输出通道数。卷积层的输出,是输入图像经过卷积核(滤波器)处理之后的输出。不同的通道之间是并行的(同层的)
4.groups(int)参数理解
groups的作用在于,将多组的输入和输出进行分组。实现分组卷积。可以极大程度减少参数数量。