详解Keras3.0 Layers API: Pooling layers (AveragePooling1D 、AveragePooling2D 、AveragePooling3D)

1、AveragePooling1D

一维平均池化层

keras.layers.AveragePooling1D(
    pool_size, strides=None, padding="valid", data_format=None, name=None, **kwargs
)
参数说明 
  • pool_size整数或整数元组,表示池化窗口的大小。如果为单个整数,则表示池化窗口的长度;如果为整数元组,则表示池化窗口的高度和宽度。例如,pool_size=(2, 3) 表示使用一个高度为 2、宽度为 3 的池化窗口。
  • strides整数或整数元组,表示池化窗口在输入数据上的步长。默认值为 None,表示步长与池化窗口大小相同。如果为单个整数,则表示步长的长度;如果为整数元组,则表示步长的宽度和高度。例如,strides=(2, 3) 表示步长为 2、3。
  • padding字符串,表示填充方式。可选值为 "valid"(不填充)和 "same"(填充)。默认值为 "valid"。
  • data_format字符串,表示输入数据的格式。可选值为 "channels_first"(通道优先)和 "channels_last"(通道后)。默认值为 None,表示根据 Keras 的配置自动选择数据格式。
  • name字符串,表示该层的名称。默认值为 None,表示自动生成名称。
  • **kwargs其他关键字参数,用于传递给底层的 TensorFlow 函数。
示例 
from keras.models import Sequential

from keras.layers import AveragePooling1D


#创建一个Sequential对象
model = Sequential()

#向模型中添加一个一维平均池化层
pool_size=2: 指定池化窗口的大小为2,即在每个时间步上取两个相邻样本的平均值作为输出

#input_shape=(10, 5): 指定输入数据的形状为(10, 5)
model.add(AveragePooling1D(pool_size=2, input_shape=(10, 5)))

#打印模型结构
model.summary()
模型结构
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
average_pooling1d (AveragePo (None, 5, 2)             0         
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0

 

 2、AveragePooling2D

二维平均池化层

keras.layers.AveragePooling2D(
    pool_size,
    strides=None,
    padding="valid",
    data_format="channels_last",
    name=None,
    **kwargs
)
参数说明 
  • pool_size: 这是一个整数或整数元组,表示池化窗口的大小。如果是一个整数,那么这个值将应用于高度和宽度两个维度。如果是一个元组,那么第一个元素将应用于高度,第二个元素将应用于宽度。例如,(2, 2)将会在高度和宽度方向上都使用大小为2的池化窗口。
  • strides: 这是一个可选参数,默认值为None。它也是一个整数或整数元组,表示池化操作的步幅。步幅决定了池化窗口在输入数据上移动的步长。如果步幅为None,那么默认步幅与池化窗口的大小相同。
  • padding: 这是一个可选参数,默认值为"valid"。它指定了填充方式。如果设置为"valid",则不进行填充;如果设置为"same",则在输入数据的边界处添加零填充,使得输出数据的大小与输入数据的大小相同。
  • data_format: 这是一个可选参数,默认值为"channels_last"。它指定了输入数据的格式。如果设置为"channels_last",则输入数据的形状为(batch_size, height, width, channels);如果设置为"channels_first",则输入数据的形状为(batch_size, channels, height, width)。
  • name: 这是一个可选参数,默认值为None。它指定了该层的名称。
  • **kwargs: 这是可变参数,可以接收任意数量的关键字参数。这些参数将被传递给底层的TensorFlow函数。
示例 
from keras.models import Sequential
from keras.layers import AveragePooling2D

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

# 添加一个二维平均池化层,池化窗口大小为(2, 2),步幅为(2, 2),不进行填充,输入数据格式为"channels_last"
model.add(AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='valid', data_format='channels_last'))

# 打印模型结构
model.summary()
模型结构
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
average_pooling2d (AveragePo (None, 5, 5, 64)         0         
=================================================================
Total params: 32,768
Trainable params: 32,768
Non-trainable params: 0
_________________________________________________________________

3、AveragePooling3D

三维平均池化层 

keras.layers.AveragePooling3D(
    pool_size,
    strides=None,
    padding="valid",
    data_format="channels_last",
    name=None,
    **kwargs
)
参数说明 
  • pool_size: 这是一个整数或整数元组,表示池化窗口的大小。如果是一个整数,那么在每个维度上都会使用相同的池化窗口大小。如果是一个元组,那么分别指定每个维度上的池化窗口大小。例如,pool_size=(2, 2, 2)表示在每个维度上使用大小为2的池化窗口。
  • strides: 这是一个可选参数,默认值为None。它也是一个整数或整数元组,表示池化窗口在每个维度上的步幅。步幅决定了池化操作的移动速度。如果步幅为None,则默认步幅与池化窗口大小相同。
  • padding: 这是一个可选参数,默认值为"valid"。它指定了填充方式。如果设置为"valid",则不进行填充;如果设置为"same",则在输入数据的边缘处添加零填充,以保持输出数据的尺寸与输入数据相同。
  • data_format: 这是一个可选参数,默认值为"channels_last"。它指定了输入数据的格式。如果设置为"channels_last",则输入数据的维度顺序为(batch_size, height, width, channels);如果设置为"channels_first",则输入数据的维度顺序为(batch_size, channels, height, width)
  • name: 这是一个可选参数,用于给该层命名。如果不提供名称,将自动生成一个名称。
  • **kwargs: 这是一个可变参数,可以传递其他关键字参数给该层。这些额外的参数将被传递给底层的TensorFlow函数。
示例
import numpy as np
from keras.models import Sequential
from keras.layers import AveragePooling3D

# 创建一个随机的三维输入数据
input_shape = (10, 10, 10, 3)
input_data = np.random.rand(*input_shape)

# 创建模型
model = Sequential()
model.add(AveragePooling3D(pool_size=(2, 2, 2), strides=None, padding="valid", data_format="channels_last"))

# 打印模型结构
model.summary()
模型结构 
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
average_pooling3d (AveragePoo (None, 5, 5, 5, 3)        0         
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘起性空、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值