Function arm_convolve_1x1_out_s8

Function Documentation

arm_cmsis_nn_status arm_convolve_1x1_out_s8(const cmsis_nn_context *ctx, const cmsis_nn_context *weight_sum_ctx, const cmsis_nn_conv_params *conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int8_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int32_t *bias_data, const cmsis_nn_dims *output_dims, int8_t *output_data)

Optimised convolution for 1x1 output images (shape of BX1x1xC_OUT) for 8x8 computations.

  • Supported framework : TensorFlow Lite Micro

  • Optimised for Bx1×1xC output CNN layers.

  • Constraints:

    1. output_dims->h and output_dims->w must equal 1

    2. output_dims->c is expected to be a multiple of 4 for best performance

Parameters:
  • ctx[inout] Function context that may supply an additional buffer for activation rearrangement.

  • weight_sum_ctx[inout] Context holding the weight-sum buffer.

  • conv_params[in] Convolution parameters (stride, dilation, pad, offsets). Range of conv_params->input_offset : [-127, 128] Range of conv_params->output_offset : [-128, 127]

  • quant_params[in] Per-channel quantisation multipliers and shifts.

  • input_dims[in] Input tensor dimensions. Format: [N, H, W, C_IN]

  • input_data[in] Pointer to input data. Data type: int8

  • filter_dims[in] Filter tensor dimensions. Format: [C_OUT, KH, KW, C_IN]

  • filter_data[in] Pointer to filter data. Data type: int8

  • bias_dims[in] Bias tensor dimensions. Format: [C_OUT]

  • bias_data[in] Optional bias pointer. Data type: int32

  • output_dims[in] Output tensor dimensions. Format: [N, 1, 1, C_OUT]

  • output_data[out] Pointer to output data. Data type: int8

Returns:

ARM_CMSIS_NN_ARG_ERROR on bad args, or ARM_CMSIS_NN_SUCCESS on success.