我可以简单地用 tf.layer.max_pooling 替换 tf.nn.conv2d 层吗?

Can I simply replace a tf.nn.conv2d layer with a tf.layer.max_pooling?

我想知道,与 pooling 相比,stride 好多少。

我当前的代码如下所示

w = tf.get_variable('w', [k_h, k_w, output_shape[-1], input_.get_shape()[-1]],
          initializer=tf.random_normal_initializer(stddev=stddev))
deconv = tf.nn.conv2d_transpose(input_, w, output_shape=output_shape, strides=[1, d_h, d_w, 1])

下面的代码是否与上面的代码大致相同?

tf.layers.max_pooling2d(input_, pooling=2, strides=[1, d_h, d_w, 1], padding='same')
  • 两者不同
  • tf.nn.conv2d_transpose用于上采样
  • tf.layers.max_pooling2d用于下采样
  • tf.nn.conv2d_transpose 获取低维图像并将其缩放为高维图像
  • tf.layers.max_pooling2d 获取更高维度的图像并将其缩小为更低维度的图像
  • 您不能用 tf.layer.max_pooling 替换 tf.nn.conv2d 层,因为它们的 bot 完全用于相反的目的