文章目录
1.nn.Cov2d
nn.Cov2d(in_channels,
out_channels,
kernel_size,
stride = 1,
padding = 0,
dilation = 1,
groups = 1,
bias = True,
padding_mode = 'zero'
)
功能:对多个二维信号进行二维卷积
主要参数:
• in_channels:输入通道数
• out_channels:输出通道数,等价于卷积核个数
• kernel_size:卷积核尺寸
• stride:步长
• padding :填充个数
• dilation:空洞卷积大小,常用于图像分割任务
• groups:设置分组卷积的组数,常用于模型的轻量化
• bias:偏置
尺寸计算:
输
出
尺
寸
=
输
入
尺
寸
−
k
e
r
n
e
l
s
i
z
e
s
t
r
i
d
e
+
1
输出尺寸 = \frac{输入尺寸-kernel_size}{stride}+1
输出尺寸=stride输入尺寸−kernelsize+1
经过2维卷积后的图像变化:
卷积前尺寸:torch.Size([1, 3, 512, 512])
卷积后尺寸:torch.Size([1, 1, 510, 510])
计算:
输
出
尺
寸
=
512
−
3
1
+
1
=
510
输出尺寸 = \frac{512-3}{1}+1 = 510
输出尺寸=1512−3+1=510
2.转置卷积
nn.CovTranspose2d(in_channels,
out_channels,
kernel_size,
stride = 1,
padding = 0,
output_padding = 0,
groups = 1,
bias = True,
dilation = 1,
padding_mode = 'zeros'
)
功能:用于对图像进行上采样(UpSample)。输入图像尺寸比较小,经过转置卷积以后输出图像尺寸更大
主要参数:
• in_channels:输入通道数
• out_channels:输出通道数
• kernel_size:卷积核尺寸
• stride:步长。stride几乎决定了整个上采样的大小
• padding :填充个数
• dilation:空洞卷积大小
• groups:分组卷积设置
• bias:偏置
计算:
输
出
尺
寸
=
(
输
入
尺
寸
−
1
)
∗
s
t
r
i
d
e
+
k
e
r
n
e
l
s
i
z
e
输出尺寸 = (输入尺寸-1) *stride+kernel_size
输出尺寸=(输入尺寸−1)∗stride+kernelsize
经过转置卷积后的图像变化(设置stride为2):
卷积前尺寸:torch.Size([1, 3, 512, 512])
卷积后尺寸:torch.Size([1, 1, 1025, 1025])
计算:
输
出
尺
寸
=
(
512
−
1
)
∗
2
+
3
=
1025
输出尺寸 =(512-1) *2 + 3= 1025
输出尺寸=(512−1)∗2+3=1025