以下摘自http://tensorflow.org/api_docs/python/nn.md#pooling
shape(输出)=(shape(value) - ksize + 1)/ strides
其中舍入方向取决于填充:
填充='相同':向下舍入(仅考虑全尺寸窗口)。
padding =' VALID':向上舍入(包括部分窗口)。
我无法理解上面的公式。我熟悉以下公式:
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。
除此之外,填充定义似乎是反转的。不是同一个'填充包括部分窗口?
答案 0 :(得分:2)
我想我弄明白了这个问题。如果您假设适当的填充已包含在形状(值)中,则这两个公式将变为等效。但我仍然认为填充类型的定义已在文档中交换。我创建了一个问题来报告:https://github.com/tensorflow/tensorflow/issues/196