无法理解 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)/步幅
舍入方向取决于填充:
padding = 'SAME':向下舍入(只考虑全尺寸windows)。
padding = 'VALID':四舍五入(包括部分windows)。
我看不懂上面的公式。我熟悉以下公式:
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
以下摘录自http://tensorflow.org/api_docs/python/nn.md#pooling
形状(输出)=(形状(值)- ksize + 1)/步幅
舍入方向取决于填充:
padding = 'SAME':向下舍入(只考虑全尺寸windows)。
padding = 'VALID':四舍五入(包括部分windows)。
我看不懂上面的公式。我熟悉以下公式:
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