详解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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!