版权声明:转载请注明出处 https://blog.csdn.net/The_lastest/article/details/82188187
1.结论
在用tf.nn.conv2d()
计算卷积的时候突然有一个疑问,当padding=SAME的时候Tensorflow
内部到底是这么处理的。网上找了一圈没发现,都是说怎么计算卷积后的尺寸,没办法挨个试了一遍总结了padding的规律。下面先说结论,再说示例。
符号及术语说明:
[]
表示取整,如[0.6]=0
;
⌈⌉
表示向上取整,如⌈0.6⌉=1
Tensorflow
中padding后尺寸的计算公式为:
1.当padding = 'VALID'
时
2.当padding = 'SAME'
时
其中W表示输入的长宽,F表示过滤器的尺寸,s表示步长
结论:
设输入形状为
,卷积核形状为
,步长为
;则我们可以算出卷积或者池化后的尺寸为
,则padding的圈数为:
以上公式是根据 得出
举个例子:
假如输入为 ,卷积为 , ;则卷积后的形状为 ,那么padding的圈数为
假如输入为 ,卷积为 , ;则卷积后的形状为 ,那么padding的圈数为
2.示例
下图均是根据Tensorflow
的计算结果画出的,7x7,3*3,1 分别是输入大小,过滤器大小,步长
注:当P包含0.5圈是,TensorFlow
中都是在右下角填充