MaxPooling2D 是 TensorFlow Keras 中用于执行 2D 最大池化的层。它可以用于下采样,减少特征图的空间维度。
概述
MaxPooling2D 层通过取输入特征图上每个窗口的最大值来提取特征。这对于提取图像中的重要特征非常有用。
使用方法
from tensorflow.keras.layers import MaxPooling2D
model = keras.Sequential([
keras.Input(shape=(28, 28, 1)),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
参数
pool_size
: 池化窗口的大小。默认为 (2, 2)。strides
: 步长。默认为 (2, 2)。padding
: 填充方式。可以是 'valid' 或 'same'。
示例
以下是一个使用 MaxPooling2D 层的简单示例:
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import MaxPooling2D, Flatten, Dense
# 加载 MNIST 数据集
(x_train, _), (x_test, _) = mnist.load_data()
# 归一化数据
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
# 增加一个颜色通道
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# 创建模型
model = Sequential([
keras.Input(shape=(28, 28, 1)),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test))
# 评估模型
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
更多示例和详细说明,请参阅 TensorFlow Keras 官方文档。