Main Content

averagePooling1dLayer

1-D average pooling layer

Since R2021b

    Description

    A 1-D average pooling layer performs downsampling by dividing the input into 1-D pooling regions, then computing the average 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

    example

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

    example

    layer = averagePooling1dLayer(poolSize,Name=Value) also specifies the padding or sets the Stride and Name properties using one or more optional name-value arguments. For example, averagePooling1dLayer(3,Padding=1,Stride=2) creates a 1-D average 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: averagePooling1dLayer(3,Padding=1) creates a 1-D average 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

    Average 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

    Value used to pad input, specified as 0 or "mean".

    When you use the Padding option to add padding to the input, the value of the padding applied can be one of the following:

    • 0 — Input is padded with zeros at the positions specified by the Padding property. The padded areas are included in the calculation of the average value of the pooling regions along the edges.

    • "mean" — Input is padded with the mean of the pooling region at the positions specified by the Padding option. The padded areas are effectively excluded from the calculation of the average value of each pooling region.

    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 AveragePooling1DLayer 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 average pooling layer with a pool size of 3.

    layer = averagePooling1dLayer(3)
    layer = 
      AveragePooling1DLayer with properties:
    
                Name: ''
    
       Hyperparameters
            PoolSize: 3
              Stride: 1
         PaddingMode: 'manual'
         PaddingSize: [0 0]
        PaddingValue: 0
    
    

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

    layers = [
        sequenceInputLayer(12,MinLength=40)
        convolution1dLayer(11,96)
        reluLayer
        averagePooling1dLayer(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 Average Pooling      average 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