下采样过程(编码过程)
conv参数
(in_channels,out_channels,kernel_size,stride,padding)
(输入特征,输出特征图,卷积核大小,步长,原图补0操作)
卷积后大小计算公式
W = [(W-F+2P)/S]+1
H = [(H-F+2P)/S]+1
归一化
- 批量归一化nn.BatchNorm1d/2d/3d从特征维度出发
- 层归一化nn.LayerNorm对每一个样本
- 实例归一化nn.InstanceNorm1d/2d/3d对每一个样本的一个通道
- 组归一化nn.GroupNorm对每一个样本的通道数进行分组
详细描述请参考(https://www.cnblogs.com/zpc1001/p/13344215.html)
激活函数
- Relu函数:f(x) = max (0,x)图像如下
- LeakyRelu函数
池化操作
最大池化nn.MaxPool1d/1d/3d,领域内特征点取最大
常用参数(kernel_size,stride)(池化的大小,步长)
平均池化nn.AdaptiveAvgPool1d/2d/3d领域内特征点取平均值
池化后图片大小计算
W=[(W-F)/S]+1
H=[(H-F)/S]+1
一个卷积过程
self.enc1 = nn.Sequential(
nn.Conv3d(in_channels=1, out_channels=30, kernel_size=(3, 3, 3), stride=1, padding=1),
nn.InstanceNorm3d(30),
nn.LeakyReLU()
)
上采样过程(解码过程)
转置卷积
转置卷积参数比卷积多了一个out_padding参数
计算公式:
output=(input-1)stride+out_padding-2padding+kernel_size
nn.ConvTranspose3d(in_channels=120, out_channels=120, kernel_size=(3, 3, 3),
stride=2, padding=1, output_padding=1)