Convolution Arithmetic
为了简化情况,假设输入(input)、特征块(kernel)、补零(padding)以及步长(strides)在不同轴上的长度均相等,分别为i、k、p、s。
No zero padding, unit strides
o=i−k+1,其中s=1,p=0
Zero padding, unit strides
o=i−k+2p+1,其中s=1
Half (same) padding
在这里输入与输出的大小一样,这是一个期望的特性
o=i−k+2p+1=i,其中s=1,k=2n+1,p=⌊k/2⌋
Full padding
当需要输出比输入更大时
o=i−k+2p+1=i+k−1,其中s=1,p=k−1
No zero padding, non-unit strides
o=⌊i−ks⌋+1,其中p=0
Zero padding, non-unit strides
o=⌊i+2p−ks⌋+1,其中p=0
参考资料
- Vincent Dumoulin , Francesco Visin, A guide to convolution arithmetic for deep learning, 2016-3-24.
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。