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

标签 deep-learning tensorflow

以下摘自 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/

相关文章:

machine-learning - 随着批量大小的变化,学习率应该如何变化?

tensorflow - 如何在不同的 RNN 单元之间共享权重,这些单元在 Tensorflow 中输入不同的输入?

deep-learning - 修改Theano.tensor.nnet.softmax中的perform函数

deep-learning - 如何在caffe中使用完全卷积网络解决过度拟合

python - ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) 抛出 IndexError : Target 42 is out of bounds

python - 如何使用 keras/tensorflow 根据不同向量中的索引求和值?

tensorflow - 尝试导入 Tensorflow GPU 时出错

computer-vision - 卷积神经网络是否具有图像定位能力?

amazon-web-services - TensorFlow 不使用 GPU