1

我很困惑我们如何定义max-pooling. Tensorflow文档含糊不清,没有很好地解释参数。
在汇集文档中它只说:

ksize:长度 >= 4 的整数列表。输入张量的每个维度的窗口大小。strides:长度 >= 4 的整数列表。输入张量的每个维度的滑动窗口的步幅。

每个池化操作使用大小为 ksize 的矩形窗口,由偏移步幅分隔。例如,如果 strides 是所有窗口,则使用所有窗口,如果 strides 是所有两个窗口,则每个维度都使用其他窗口,等等。

下面Caffemax-poolingin等价于Tensorflow什么?

layer {
  name: "pool"
  type: "Pooling"
  bottom: "relu"
  top: "pool"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}

我不确定它们是否意味着所有一个跨步 [1,1,1,1] 的重叠池和非重叠 [2,2,2,2] 说

如果 strides 是所有窗口,则使用每个窗口,如果 strides 是所有两个窗口,则每个维度都使用其他窗口,等等。

4

1 回答 1

1

要在 Tensor-Flow 中进行最大池化,请使用:

tf.nn.max_pool(value, ksize, strides, padding, data_format='NHWC', name=None)

其中 ksize 定义了用于最大池化的窗口。请注意,您必须为输入的每个维度指定窗口大小。这是与 caffe 最大的不同,caffe 会为你做所有的维度计算。请注意,您可能具有不同的维度,具体取决于您来自前一个卷积层的输出数量。

步幅在 caffe 中仍然具有相同的效果(“跳过”输入。但是您必须为输入的每个维度再次指定步幅。

尺寸至少为 4 或更大。

请参阅此处的文档:

https://www.tensorflow.org/api_docs/python/nn/pooling

于 2017-01-20T14:11:00.413 回答