无法理解 TensorFlow 文档中的 shape(output) = (shape(value) - ksize + 1) / strides

Can't understand shape(output) = (shape(value) - ksize + 1) / strides in TensorFlow docs

以下摘录自http://tensorflow.org/api_docs/python/nn.md#pooling

形状(输出)=(形状(值)- ksize + 1)/步幅

舍入方向取决于填充:

我看不懂上面的公式。我熟悉以下公式:

shape(out) = (shape(value) - ksize + 2*pad)/strides+1.

这两个公式是否等价?

例如,shape(value) = 9,ksize = 3,strides = 2,padding = 'SAME'.

在第一个公式中,形状(输出)将为 (9-3+1)/2 = 7/2 = 3.5,向下舍入结果为 3。

在第二个公式中,形状(输出)将为 (9-3+2*1)/2 + 1 = 5

好像不是同一个公式。即使我将第一个四舍五入,结果也将是 4.

除此之外,填充定义似乎是颠倒的。 'SAME' padding 不是包含部分 windows 吗?

我想我找到了问题所在。如果您假设适当的填充已包含在 shape(value) 中,则这两个公式将变得等效。但我仍然认为填充类型的定义已在文档中交换。我创建了一个问题来报告:https://github.com/tensorflow/tensorflow/issues/196