# maxPooling2dLayer


二维最大池化层

函数库: TyDeepLearning

# 语法

layer = maxPooling2dLayer(PoolSize=1; Stride=1, PaddingMode="valid")

# 说明

layer = maxPooling2dLayer(PoolSize=1; Stride=1, PaddingMode="valid")创建一个二维最大池化层。示例

对输入的多维数据进行二维平面上的最大池化运算。 通常,输入的 shape 为 ,averagePooling2dLayer 在 维度上输出区域平均值。 给定 PoolSizeStride ,公式定义如下:

# 示例

创建二维最大池化层

创建一个维度为(1,2,4,4)、元素在(0,10)之间的数组。

using TyDeepLearning
set_backend(:mindspore)
array = 10 * rand(Float32, (1, 2, 4, 4))

创建一个二维最大池化层,池化核大小为 3。 使用该层处理数组并输出结果维度。

layer = maxPooling2dLayer(3)
print(size(TyDeepLearning.predict(layer, array)))
(1, 2, 2, 2)
创建具有非重叠池化区域的二维最大池化层

创建具有非重叠池化区域的二维最大池化层,池化核大小为 2,步长为 2。

using TyDeepLearning
set_backend(:mindspore)
layer = maxPooling2dLayer(2; Stride = 2)

随机生成一个维度为(1,1,28,28)的数组。

input = rand(Float32, (1, 1, 28, 28))

创建一个包含具有非重叠池化区域的二维最大池化层的神经网络。 使用该神经网络处理数组并输出结果维度。

layers = SequentialCell([
    convolution2dLayer(1, 20, 5),
    reluLayer(),
    maxPooling2dLayer(2; Stride = 2),
    flattenLayer(),
    fullyConnectedLayer(20 * 14 * 14, 10),
    softmaxLayer()
])
print(size(TyDeepLearning.predict(layers, input)))
(1, 10)
创建具有重叠池化区域的二维最大池化层

创建一个具有重叠池化区域的二维最大池化层,池化核大小为(3,2),步长为 2。

using TyDeepLearning
set_backend(:mindspore)
layer = maxPooling2dLayer((3, 2); Stride = 2)

随机生成一个维度为(1,1,28,28)的数组。

input = rand(Float32, (1, 1, 28, 28))

创建一个包含具有重叠池化区域的二维最大池化层的神经网络。 使用该神经网络处理数组并输出结果维度。

layers = SequentialCell([
    convolution2dLayer(1, 20, 5),
    reluLayer(),
    maxPooling2dLayer((3, 2); Stride = 2),
    flattenLayer(),
    fullyConnectedLayer(20 * 13 * 14, 10),
    softmaxLayer()
])
print(size(TyDeepLearning.predict(layers, input)))
(1, 10)

# 输入参数

PoolSize-池化核尺寸
向量|标量

指定池化核尺寸大小。如果为整数,则代表池化核的高和宽。如果为 Tuple,其值必须包含两个整数值分别表示池化核的高和宽。默认值:1。

数据类型: Int64

Stride-步长
向量|标量

池化操作的移动步长,如果为整数,则代表池化核的高和宽方向的移动步长。如果为 Tuple,其值必须包含两个整数值分别表示池化核的高和宽的移动步长。默认值:1。

数据类型: Int64

PaddingMode-填充模式
字符串

指定填充模式。可选值为 “same”,”valid”,”pad”。默认值:”same”。

  • same:输出的宽度与输入整除 Stride 后的值相同。

  • valid:在不填充的前提下返回有效计算所得的输出。不满足计算的多余像素会被丢弃。

数据类型: string

# 输出参数

layer-二维最大池化层
网络对象

输出为一个二维最大池化层

# 另请参阅

SequentialCell | convolution2dLayer | flattenLayer | fullyConnectedLayer | softmaxLayer | predict