正确使用 tf.layers.MaxPooling
Proper use of tf.layers.MaxPooling
我正在使用 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)
的形状。
我使用这个正确吗?
如果你想将你的特征图缩小 2 倍,你应该使用 stride 2。
In [1]: tf.layers.MaxPooling2D(2, 2, padding='same')(conv)
Out[1]: <tf.Tensor 'max_pooling2d/MaxPool:0' shape=(20, 64, 64, 32) dtype=float32>
我正在使用 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)
的形状。
我使用这个正确吗?
如果你想将你的特征图缩小 2 倍,你应该使用 stride 2。
In [1]: tf.layers.MaxPooling2D(2, 2, padding='same')(conv)
Out[1]: <tf.Tensor 'max_pooling2d/MaxPool:0' shape=(20, 64, 64, 32) dtype=float32>