pytorch轉置卷積(反卷積)參數說明,尺寸輸入輸出的計算
函數構造:
class ConvTranspose2d(_ConvTransposeMixin, _ConvNd): def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros'):
- in_channels(
int
) – 輸入信號的通道數 - out_channels(
int
) – 卷積產生的通道數 - kerner_size(
int
ortuple
) - 卷積核的大小 - stride(
int
ortuple
,optional
) - 卷積步長 - padding(
int
ortuple
,optional
) - 輸入的每一條邊補充0的層數 - output_padding(
int
ortuple
,optional
) - 輸出的每一條邊補充0的層數 - dilation(
int
ortuple
,optional
) – 卷積核元素之間的間距 - groups(
int
,optional
) – 從輸入通道到輸出通道的阻塞連接數 - bias(
bool
,optional
) - 如果bias=True
,添加偏置
輸入輸出計算過程:
h_in = 128*128
h_out = 56*56
這里h_in指正向卷積輸入
正向卷積:h_out = (h_in + 2*padding - kernl_size) / stride +1
+1是因為除不盡向下取整
故轉置卷積:h_in = (h_out - 1) * stride + kernl_size - 2*padding + output_padding
output_padding,是因為輸出與期望輸出有偏差,需在下邊補0填充