Main Content

maxPooling1dLayer

1-D max pooling layer

Since R2021b

    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 "C" (channel), "B" (batch), and "T" (time) dimensions), the layer pools over the "T" (time) dimension.

    • For 1-D image input (data with three dimensions corresponding to the "S" (spatial), "C" (channel), and "B" (batch) dimensions), the layer pools over the "S" (spatial) dimension.

    • For 1-D image sequence input (data with four dimensions corresponding to the "S" (spatial), "C" (channel), "B" (batch), and "T" (time) dimensions), the layer pools over the "S" (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 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(3,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 trainnet, trainNetwork, assembleNetwork, layerGraph, and dlnetwork functions automatically assign names to layers with the name "".

    The MaxPooling1DLayer object stores this property as a character vector.

    Data Types: char | string

    This property is read-only.

    Number of inputs to the layer, returned as 1. This layer accepts a single input only.

    Data Types: double

    This property is read-only.

    Input names, returned as {'in'}. This layer accepts a single input only.

    Data Types: cell

    This property is read-only.

    Number of outputs from the layer, returned as 1. This layer has a single output only.

    Data Types: double

    This property is read-only.

    Output names, returned as {'out'}. 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,MinLength=40)
        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   ''   1-D 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   ''   1-D 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

    Version History

    Introduced in R2021b