1、二维卷积
@输入数据形状:32*32*3(size*in_channels)
# in_channels 输入通道数
# out_channels 输出通道数(卷积核个数)
# kernel_size 卷积核尺寸
# stride 步长,默认1
# padding 填充个数,默认0
# dilation 空洞卷积大小,默认1(常用于图像分割)
# groups 分组卷积设置,默认1,一幅图划分为多个区域且不同区域内有一个卷积核(常用于模型轻量化)
# bias 偏置,默认True
nn.Conv2d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True,padding_mode='zeros')
2、卷积输出尺寸计算
# 输入图片假设为4*4,则in_size=4
# 卷积核3*3,kernel_size=3
# stride 步长
简化:out_size = in_size-kernel_size+1 # 2
完整:out_size = [in_size+2*padding-dilation*(kernel_size-1)-1]/stride+1 # 2
3、转置卷积
# output_padding
nn.ConvTranspose2d(in_channels,out_channels,kernel_size,stride=1,padding=0,output_padding=0,dilation=1,groups=1,bias=True,padding_mode='zeros')
4、池化
4.1 最大池化
# kernel_size:池化核尺寸,如(2,3)或(2,2)或2
# stride:步长,默认None
# padding:填充个数,默认0
# dilation:池化核间隔大小,默认1
# return_indices:默认False,记录池化像素索引(记录最大池化时,最大值的位置,在反池化时将最大值还原到原位置)
# ceil_mode:默认False,尺寸向上取整(当输出尺寸不能被整除使使用)
nn.MaxPool2d(kernel_size,stride=None,padding=0,dilation=1,return_indices=False,ceil_mode=False)
4.2 平均池化
# count_include_pad:默认True,填充值是否用于计算
# divisor_override:默认None,除法因子(求平均值时将分母变成除法因子)
nn.AvgPool2d(kernel_size,stride=None,padding=0,ceil_mode=False,count_include_pad=True,divisor_override=None)
5、反池化
nn.MaxUnpool2d(kernel_size,stride=None,padding=0)