Skip to content
heliaCORE
API reference
HELIA HUB

Pooling Functions

Perform max and average pooling operations

Machine-readable model

function

Max pooling.

Include/arm_nnfunctions_flt.h:540

arm_cmsis_nn_status arm_max_pool_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_pool_params_f32 *pool_params,
const cmsis_nn_dims *input_dims,
const float32_t *src,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
float32_t *dst
)

Max pooling.

Parameters of arm_max_pool_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
pool_paramsconst cmsis_nn_pool_params_f32 *inPooling parameters (stride, padding and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
srcconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inPooling kernel dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
dstfloat32_t *outPointer to the output tensor data.
Returns of arm_max_pool_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success, including an output with no rows or no columns (an extent of 0 or less), which writes nothing; `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments: a NULL pointer argument other than ctx, a batch count below 1, a pooling window that does not overlap the input, or window positions (output index * stride - padding, including one stride past the last window, plus the filter extent, and input size minus position) that do not fit in an int32_t. Nothing is written to dst then.
function

Average pooling.

Include/arm_nnfunctions_flt.h:565

arm_cmsis_nn_status arm_avg_pool_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_pool_params_f32 *pool_params,
const cmsis_nn_dims *input_dims,
const float32_t *src,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
float32_t *dst
)

Average pooling.

Parameters of arm_avg_pool_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
pool_paramsconst cmsis_nn_pool_params_f32 *inPooling parameters (stride, padding and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
srcconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inPooling kernel dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
dstfloat32_t *outPointer to the output tensor data.
Returns of arm_avg_pool_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success, including an output with no rows or no columns (an extent of 0 or less), which writes nothing; `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments: a NULL pointer argument other than ctx, a batch count below 1, a pooling window that does not overlap the input, or window positions (output index * stride - padding, including one stride past the last window, plus the filter extent, and input size minus position) that do not fit in an int32_t. Nothing is written to dst then.
function

Max pooling.

Include/arm_nnfunctions_flt.h:2695

arm_cmsis_nn_status arm_max_pool_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_pool_params_f16 *pool_params,
const cmsis_nn_dims *input_dims,
const float16_t *src,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
float16_t *dst
)

Max pooling.

Parameters of arm_max_pool_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
pool_paramsconst cmsis_nn_pool_params_f16 *inPooling parameters (stride, padding and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
srcconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inPooling kernel dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
dstfloat16_t *outPointer to the output tensor data.
Returns of arm_max_pool_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success, including an output with no rows or no columns (an extent of 0 or less), which writes nothing; `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments: a NULL pointer argument other than ctx, a batch count below 1, a pooling window that does not overlap the input, or window positions (output index * stride - padding, including one stride past the last window, plus the filter extent, and input size minus position) that do not fit in an int32_t. Nothing is written to dst then.
function

Average pooling.

Include/arm_nnfunctions_flt.h:2712

arm_cmsis_nn_status arm_avg_pool_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_pool_params_f16 *pool_params,
const cmsis_nn_dims *input_dims,
const float16_t *src,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
float16_t *dst
)

Average pooling.

Parameters of arm_avg_pool_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
pool_paramsconst cmsis_nn_pool_params_f16 *inPooling parameters (stride, padding and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
srcconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inPooling kernel dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
dstfloat16_t *outPointer to the output tensor data.
Returns of arm_avg_pool_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success, including an output with no rows or no columns (an extent of 0 or less), which writes nothing; `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments: a NULL pointer argument other than ctx, a batch count below 1, a pooling window that does not overlap the input, or window positions (output index * stride - padding, including one stride past the last window, plus the filter extent, and input size minus position) that do not fit in an int32_t. Nothing is written to dst then.