Python tensorflow conv2d的填充策略是什么?
我跟着老师的问答 然而,我仍然对tf.nn.conv2d的开始索引和填充策略感到困惑。在我进行了以下测试之后,希望有人能在这里给我一个线索,特别是关于奇数和偶数的步幅 数组高度(h)、内核大小(f)、步幅数(s) 矩阵左栏(pl)上的填充编号和右栏(pr)上的填充编号x 在卷积池的情况下,零填充应该围绕数组x填充,就像我定义xp的方式一样,但是,我无法计算它的开始索引是如何填充的 原点矩阵xPython tensorflow conv2d的填充策略是什么?,python,tensorflow,convolution,Python,Tensorflow,Convolution,我跟着老师的问答 然而,我仍然对tf.nn.conv2d的开始索引和填充策略感到困惑。在我进行了以下测试之后,希望有人能在这里给我一个线索,特别是关于奇数和偶数的步幅 数组高度(h)、内核大小(f)、步幅数(s) 矩阵左栏(pl)上的填充编号和右栏(pr)上的填充编号x 在卷积池的情况下,零填充应该围绕数组x填充,就像我定义xp的方式一样,但是,我无法计算它的开始索引是如何填充的 原点矩阵x x shape: (1, 4, 4, 1) kernel: 3 stride: 2 [[ 0
x shape: (1, 4, 4, 1) kernel: 3 stride: 2
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
在“相同”类型的卷积中,在这种情况下,为什么tf.nn.conv2d不在左侧补零?
'SAME' os shape: (1, 2, 2, 1)
[[45. 39.]
[66. 50.]]
矩阵x上的有效卷积
'VALID' ov shape: (1, 1, 1, 1)
[[45.]]
xp中零填充后的有效类型卷积(如我预期的结果)
'VALID' op shape: (1, 2, 2, 1) pl: 1 pr: 1
[[10. 24.]
[51. 90.]]
(总)填充的公式解释如下:
在您的情况下,n mod s=4 mod 2=0
so
p = max(3 - 2, 0) = 1
所以
这就解释了为什么在左边看不到任何填充物。谢谢!这就是我想要的,无论如何,我相信你的意思是:
n mod s=4 mod 2=0而不是2。
'VALID' op shape: (1, 2, 2, 1) pl: 1 pr: 1
[[10. 24.]
[51. 90.]]
p = max(3 - 2, 0) = 1
p_left = p // 2 = 0
p_right = 1 - p_left = 1