正确使用tf.layers.MaxPooling

时间:2018-12-16 13:18:03

标签: python tensorflow layer pooling

我正在使用tf.layers对象在Tensorflow中构建模型。当我使用tf.layers.MaxPooling2D运行以下代码时,我的模型不会减小大小。我只是最近才直接从使用Keras切换到Tensorflow,所以我想我误会了用法。

import tensorflow as tf
import numpy as np

features = tf.constant(np.random.random((20,128,128,3)), dtype=tf.float32)
y_true = tf.constant(np.random.random((20,1)), dtype=tf.float32)

print('features = %s' % features)
conv = tf.layers.Conv2D(32,(2,2),padding='same')(features)
print('conv = %s' % conv)
pool = tf.layers.MaxPooling2D((2,2),(1,1),padding='same')(conv)
print('pool = %s' % pool)

# and so on ...

我看到以下输出:

features = Tensor("Const:0", shape=(20, 128, 128, 3), dtype=float32)
conv = Tensor("conv2d/BiasAdd:0", shape=(20, 128, 128, 32), dtype=float32)
pool = Tensor("max_pooling2d/MaxPool:0", shape=(20, 128, 128, 32), dtype=float32)

我希望看到MaxPool层的输出具有(20,64,64,32)的形状。

我可以正确使用这个吗?

1 个答案:

答案 0 :(得分:1)

如果您要对特征图进行2倍的下采样,则应使用跨度为2。

{{1}}