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 官方文档

相关链接