以下摘自 http://tensorflow.org/api_docs/python/nn.md#pooling
形状(输出)=(形状(值)- ksize + 1)/步幅
舍入方向取决于填充:
padding = 'SAME':向下舍入(仅考虑全尺寸窗口)。
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。
除此之外,填充定义似乎是颠倒的。包含部分窗口的“SAME”填充不是吗?
最佳答案
我想我找到了问题所在。如果您假设适当的填充已包含在 shape(value) 中,则这两个公式将变得等效。但我仍然认为填充类型的定义已在文档中交换。我创建了一个问题来报告:https://github.com/tensorflow/tensorflow/issues/196
关于deep-learning - 无法理解 TensorFlow 文档中的 shape(output) = (shape(value) - ksize + 1)/strides,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657722/