使用Pythorch的ConvTranspose2d时:
w = 5 # input width
h = 5 # output height
nn.ConvTranspose2d(in_channels, out_channels, kernel_size=k, stride=s, padding=p)
每个通道的输出尺寸公式是什么?我试了几个例子,但无法推导出模式。出于某些原因,添加填充似乎会缩小输出大小(示例以5 x 5开头,如上所示):
^{pr2}$使用更大的内核或步幅都会增加(预期),但不会以我预期的速度增长:
# yields an 11 x 11 image
nn.ConvTranspose2d(in_channels, out_channels, kernel_size=3, stride=2, padding=0)
# yields a 13 x 13 image
nn.ConvTranspose2d(in_channels, out_channels, kernel_size=5, stride=2, padding=0)
# yields a 15 x 15 image
nn.ConvTranspose2d(in_channels, out_channels, kernel_size=3, stride=3, padding=0)
我确信有一个非常简单的数学方程,涉及w, h, k, s, p
,但我在文档中找不到它,我自己也无法推导出它。通常我不会要求一个数学公式,但它完全影响了CNN编译和生成正确大小的能力。提前谢谢!在
计算
ConvTranspose2d
输出大小的公式在documentation页面中提到:默认情况下,步幅为1,填充为0,输出为0。在
例如,对于
^{pr2}$H_out
将是相关问题 更多 >
编程相关推荐