This class implements a layer which performs max pooling on Height
, Width
, and Depth
dimensions of the input, allowing for multiple largest elements to be found.
If you set the number of largest elements to 1
, this layer will function exactly as the C3dMaxPoolingLayer
with the filter size equal to the input size.
void SetMaxCount(int enumSize);
Sets the number of largest elements that may be found. Note that these do not have to be equal to each other; the top GetMaxCount();
elements will be returned.
The layer has no trainable parameters.
The single input accepts a blob of the following dimensions:
BatchLength * BatchWidth * ListSize
- the number of images in the setHeight
- the images' heightWidth
- the images' widthDepth
- the images' depthChannels
- the number of channels the image format uses
The layer may have one or two outputs. The first output contains the values found, in a blob of the dimensions:
BatchLength
is equal to the inputBatchLength
BatchWidth
is equal to the inputBatchWidth
ListSize
is equal to the inputListSize
Height
is equal to1
Width
is equal toGetMaxCount()
Depth
is equal to1
Channels
is equal to the inputChannels
The second output is optional. It has the same dimensions and contains the (integer) indices of the maximum values in the original blob.