Main Content

maxPooling1dLayer

1-D max pooling layer

    Description

    A 1-D max pooling layer performs downsampling by dividing the input into 1-D pooling regions, then computing the maximum of each region.

    The dimension that the layer pools over depends on the layer input:

    • For time series and vector sequence input (data with three dimensions corresponding to the channels, observations, and time steps), the layer pools over the time dimension.

    • For 1-D image input (data with three dimensions corresponding to the spatial pixels, channels, and observations), the layer pools over the spatial dimension.

    • For 1-D image sequence input (data with four dimensions corresponding to the spatial pixels, channels, observations, and time steps), the layer pools over the spatial dimension.

    Creation

    Description

    layer = maxPooling1dLayer(poolSize) creates a 1-D max pooling layer and sets the PoolSize property.

    example

    layer = maxPooling1dLayer(poolSize,Name=Value) also specifies the padding or sets the Stride and Name properties using one or more optional name-value arguments. For example, maxPooling1dLayer(3,Padding=1,Stride=2) creates a 1-D max pooling layer with a pool size of 3, a stride of 2, and padding of size 1 on both the left and right of the input.

    Input Arguments

    expand all

    Name-Value Pair Arguments

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: maxPooling1dLayer(2,Padding=1) creates a 1-D max pooling layer with a pool size of 3 and padding of size 1 on the left and right of the layer input.

    Padding to apply to the input, specified as one of the following:

    • "same" — Apply padding such that the output size is ceil(inputSize/stride), where inputSize is the length of the input. When Stride is 1, the output is the same size as the input.

    • Nonnegative integer sz — Add padding of size sz to both ends of the input.

    • Vector [l r] of nonnegative integers — Add padding of size l to the left and r to the right of the input.

    Example: Padding=[2 1] adds padding of size 2 to the left and size 1 to the right.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    Properties

    expand all

    Max Pooling

    Width of the pooling regions, specified as a positive integer.

    The width of the pooling regions PoolSize must be greater than or equal to the padding dimensions PaddingSize.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Step size for traversing the input, specified as a positive integer.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Size of padding to apply to each side of the input, specified as a vector [l r] of two nonnegative integers, where l is the padding applied to the left and r is the padding applied to the right.

    When you create a layer, use the Padding name-value argument to specify the padding size.

    Data Types: double

    This property is read-only.

    Method to determine padding size, specified as one of the following:

    • 'manual' – Pad using the integer or vector specified by Padding.

    • 'same' – Apply padding such that the output size is ceil(inputSize/Stride), where inputSize is the length of the input. When Stride is 1, the output is the same as the input.

    To specify the layer padding, use the Padding name-value argument.

    Data Types: char

    Layer

    Layer name, specified as a character vector or a string scalar. For Layer array input, the trainNetwork, assembleNetwork, layerGraph, and dlnetwork functions automatically assign names to layers with Name set to ''.

    Data Types: char | string

    This property is read-only.

    Number of inputs of the layer. This layer accepts a single input only.

    Data Types: double

    This property is read-only.

    Input names of the layer. This layer accepts a single input only.

    Data Types: cell

    This property is read-only.

    Number of outputs of the layer. This layer has a single output only.

    Data Types: double

    This property is read-only.

    Output names of the layer. This layer has a single output only.

    Data Types: cell

    Examples

    collapse all

    Create a 1-D max pooling layer with a pool size of 3.

    layer = maxPooling1dLayer(3);

    Include a 1-D max pooling layer in a layer array.

    layers = [
        sequenceInputLayer(12)
        convolution1dLayer(11,96)
        reluLayer
        maxPooling1dLayer(3)
        convolution1dLayer(11,96)
        reluLayer
        globalMaxPooling1dLayer
        fullyConnectedLayer(10)
        softmaxLayer
        classificationLayer]
    layers = 
      10x1 Layer array with layers:
    
         1   ''   Sequence Input           Sequence input with 12 dimensions
         2   ''   Convolution              96 11 convolutions with stride 1 and padding [0  0]
         3   ''   ReLU                     ReLU
         4   ''   1-D Max Pooling          Max pooling with pool size 3, stride 1, and padding [0  0]
         5   ''   Convolution              96 11 convolutions with stride 1 and padding [0  0]
         6   ''   ReLU                     ReLU
         7   ''   1-D Global Max Pooling   1-D global max pooling
         8   ''   Fully Connected          10 fully connected layer
         9   ''   Softmax                  softmax
        10   ''   Classification Output    crossentropyex
    

    Algorithms

    expand all

    Introduced in R2021b