PyTorch卷积与反卷积输入输出尺寸关系
卷积
o u t p u t = ( i n p u t − k e r n e l + 2 × p a d d i n g ) / s t r i d e + 1 output = (input - kernel + 2 \times padding) / stride + 1 output=(input−kernel+2×padding)/stride+1
反卷积
o u t p u t = ( i n p u t − 1 ) × s t r i d e + k e r n e l − 2 × p a d d i n g + o u t p u t p a d d i n g output = (input - 1) \times stride + kernel - 2 \times padding + output\;padding output=(input−1)×stride+kernel−2×padding+outputpadding
应用
在实际应用时, 可以编写脚本计算, 选择合理的参数
# 反卷积
def cal(input, kernel, stride, padding, output_padding):
if output_padding >= stride or stride > kernel:
return -1
return stride *(input -1) - 2 * padding + kernel + output_padding
for i in range(0, 10):
for j in range(0, 10):
for k in range(0, 10):
for m in range(0, 10):
if cal(32, i, j, k, m) == 64:
print(i, j,k, m)
2 2 0 0
3 2 1 1
4 2 1 0
5 2 2 1
6 2 2 0
7 2 3 1
8 2 3 0
9 2 4 1
进程已结束,退出代码0