MaxPooling1DLayer - 1-D max pooling layer - MATLAB (original) (raw)
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
Syntax
Description
`layer` = maxPooling1dLayer([poolSize](#mw%5F2e5b91b0-3a39-4b45-ac95-a4575fd642f7))
creates a 1-D max pooling layer and sets the PoolSize property.
`layer` = maxPooling1dLayer([poolSize](#mw%5F2e5b91b0-3a39-4b45-ac95-a4575fd642f7),[Name=Value](#namevaluepairarguments))
sets optional properties using one or more name-value arguments.
Input Arguments
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 dimensionsPaddingSize
.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Name-Value Arguments
Specify optional pairs of arguments asName1=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,Stride=2)
creates a 1-D max pooling layer with a pool size of 3
and stride2
.
Step size for traversing the input, specified as a positive integer.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Padding to apply to the input, specified as one of the following:
"same"
— Apply padding such that the output size isceil(inputSize/stride)
, whereinputSize
is the length of the input. WhenStride
is1
, the output is the same size as the input.- Nonnegative integer
sz
— Add padding of sizesz
to both ends of the input. - Vector
[l r]
of nonnegative integers — Add padding of sizel
to the left andr
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
Layer name, specified as a character vector or a string scalar. For Layer
array input, the trainnet and dlnetwork functions automatically assign names to layers with the name ""
.
This argument sets the Name property.
Data Types: char
| string
Properties
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 isceil(inputSize/Stride)
, whereinputSize
is the length of the input. WhenStride
is1
, the output is the same as the input.
To specify the layer padding, use the Padding name-value argument.
Data Types: char
Layer
Data Types: char
| string
This property is read-only.
Number of inputs to the layer, stored as 1
. This layer accepts a single input only.
Data Types: double
This property is read-only.
Input names, stored as {'in'}
. This layer accepts a single input only.
Data Types: cell
This property is read-only.
Number of outputs from the layer, stored as 1
. This layer has a single output only.
Data Types: double
This property is read-only.
Output names, stored as {'out'}
. This layer has a single output only.
Data Types: cell
Examples
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]
layers = 9×1 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
Algorithms
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 layer pools the input by moving the pooling regions along the input horizontally.
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.
Layers in a layer array or layer graph pass data to subsequent layers as formatted dlarray objects. The format of a dlarray
object is a string of characters in which each character describes the corresponding dimension of the data. The format consists of one or more of these characters:
"S"
— Spatial"C"
— Channel"B"
— Batch"T"
— Time"U"
— Unspecified
For example, you can describe 2-D image data that is represented as a 4-D array, where the first two dimensions correspond to the spatial dimensions of the images, the third dimension corresponds to the channels of the images, and the fourth dimension corresponds to the batch dimension, as having the format "SSCB"
(spatial, spatial, channel, batch).
You can interact with these dlarray
objects in automatic differentiation workflows, such as those for developing a custom layer, using a functionLayer object, or using the forward and predict functions withdlnetwork
objects.
This table shows the supported input formats of MaxPooling1DLayer
objects and the corresponding output format. If the software passes the output of the layer to a custom layer that does not inherit from the nnet.layer.Formattable
class, or aFunctionLayer
object with the Formattable
property set to 0
(false
), then the layer receives an unformatted dlarray
object with dimensions ordered according to the formats in this table. The formats listed here are only a subset. The layer may support additional formats such as formats with additional "S"
(spatial) or"U"
(unspecified) dimensions.
Input Format | Output Format |
---|---|
"SCB" (spatial, channel, batch) | "SCB" (spatial, channel, batch) |
"CBT" (channel, batch, time) | "CB" (channel, batch) |
"SCBT" (spatial, channel, batch, time) | "SCBT" (spatial, channel, batch, time) |
"SB" (spatial, batch) | "SB" (spatial, batch) |
In dlnetwork
objects, MaxPooling1DLayer
objects also support these input and output format combinations.
Input Format | Output Format |
---|---|
"SC" (spatial, channel) | "SC" (spatial, channel) |
"CT" (channel, time) | "CT" (channel, time) |
"SCT" (spatial, channel, time) | "SCT" (spatial, channel, time) |
"BT" (batch, time) | "BT" (batch, time) |
"SBT" (spatial, batch, time) | "SBT" (spatial, batch, time) |
Extended Capabilities
Usage notes and limitations:
- You can generate generic C/C++ code that does not depend on third-party libraries and deploy the generated code to hardware platforms.
Usage notes and limitations:
- You can generate CUDA code that is independent of deep learning libraries and deploy the generated code to platforms that use NVIDIA® GPU processors.
Version History
Introduced in R2021b