详解Keras3.0 Layers API: Pooling layers (MaxPooling1D、MaxPooling2D、MaxPooling3D)

2023-12-13 04:02:50

1、MaxPooling1D layer

一维最大池化层

keras.layers.MaxPooling1D(
    pool_size=2, strides=None, padding="valid", data_format=None, name=None, **kwargs
)
参数说明
  • pool_size整数或整数元组,表示池化窗口的大小。如果为整数,则在每个维度上使用相同的池化窗口大小。例如,pool_size=2?表示在每个维度上使用大小为 2 的池化窗口。
  • strides整数或整数元组,表示池化窗口在每个维度上的步长。如果为整数,则在每个维度上使用相同的步长。例如,strides=2?表示在每个维度上使用步长为 2 的池化窗口。默认值为?None,此时步长与池化窗口大小相同。
  • padding字符串,表示填充方式。可选值为 "valid"(不填充)和 "same"(填充)。默认值为 "valid"。
  • data_format字符串,表示输入数据的格式。可选值为 "channels_first"(通道优先)和 "channels_last"(通道最后一个)。默认值为?None,此时根据 TensorFlow 的版本自动选择数据格式。
  • name字符串,表示该层的名称。默认值为?None
示例
#创建一维数组x
x = np.array([1., 2., 3., 4., 5.])

#使用reshape函数将x重塑为形状为[1, 5, 1]
x = np.reshape(x, [1, 5, 1])

#创建一个一维最大池化层max_pool_1d
#设置池化窗口大小为2,步长为1,填充方式为"valid"
max_pool_1d = keras.layers.MaxPooling1D(pool_size=2,strides=1, padding="valid")

#将重塑后的数组x输入到最大池化层max_pool_1d中
max_pool_1d(x) 

?2、MaxPooling2D layer

二维最大池化层

keras.layers.MaxPooling2D(
    pool_size=(2, 2), strides=None, padding="valid", data_format=None, name=None, **kwargs
)
参数说明?
  • pool_size: 一个元组,表示池化窗口的大小。例如,(2, 2)?表示在每个维度上使用大小为 2x2 的池化窗口。默认值为?(2, 2)
  • strides: 一个元组,表示池化窗口在每个维度上的步长。如果为?None,则默认步长与池化窗口大小相同。默认值为?None
  • padding: 一个字符串,表示填充方式。可选值为?"valid"(不填充)和?"same"(填充)。默认值为?"valid"
  • data_format: 一个字符串,表示输入数据的数据格式。可选值为?"channels_first"?和?"channels_last"。默认值为?None,表示根据 Keras 的配置自动选择数据格式。
  • name: 一个字符串,表示该层的名称。默认值为?None
示例
# 创建一个3x3的二维数组x
x = np.array([[1., 2., 3.],
              [4., 5., 6.],
              [7., 8., 9.]])

# 将x重塑为一个四维张量,形状为[1, 3, 3, 1]
x = np.reshape(x, [1, 3, 3, 1])

# 创建一个MaxPooling2D层,池化窗口大小为(2, 2),步长为(1, 1),填充方式为"valid"
max_pool_2d = MaxPooling2D(pool_size=(2, 2), strides=(1, 1), padding="valid")

# 对输入数据x应用最大池化操作
output = max_pool_2d(x)

3、MaxPooling3D layer

三维最大池化层

keras.layers.MaxPooling3D(
    pool_size=(2, 2, 2),
    strides=None,
    padding="valid",
    data_format=None,
    name=None,
    **kwargs
)
参数说明
  • pool_size: 一个三元组,表示在每个维度上的最大池化窗口的大小。例如,(2, 2, 2)表示在每个维度上使用大小为2x2x2的窗口进行最大池化。
  • strides: 一个可选参数,表示在每个维度上的步长。默认情况下,步长与池化窗口大小相同。如果设置为None,则步长将自动计算为池化窗口大小的整数倍。
  • padding: 一个可选参数,表示填充方式。默认值为"valid",表示不进行填充。其他可选值包括"same",表示在输入数据的边缘添加填充以保持输出尺寸与输入尺寸相同。
  • data_format: 一个可选参数,表示输入数据的格式。默认情况下,根据Keras的配置自动选择数据格式。可选值为"channels_first""channels_last",分别表示通道维度在前或后。
  • name: 一个可选参数,表示该层的名称。这可以用于在模型中引用该层。
示例
# 创建一个随机的3D张量作为输入数据
input_data = np.random.rand(1, 6, 6, 6, 3)

# 创建一个Sequential模型
model = keras.layers.Sequential()

# 向模型中添加一个3D最大池化层,池化窗口大小为2x2x2
model.add(keras.layers.MaxPooling3D(pool_size=(2, 2, 2), input_shape=(6, 6, 6, 3)))

# 打印模型结构
model.summary()

# 使用模型对输入数据进行预测
output_data = model.predict(input_data)

文章来源:https://blog.csdn.net/lymake/article/details/134955898
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。