Function arm_hard_swish_compat_s8

Function Documentation

arm_cmsis_nn_status arm_hard_swish_compat_s8(const int8_t *input, const int32_t input_offset, const int32_t output_offset, const int32_t output_multiplier_fp, const int32_t output_multiplier_exp, const int32_t relu_multiplier_fp, const int32_t relu_multiplier_exp, int8_t *output, const int32_t output_size)

S8 Hard-Swish activation function (compatibility version)

This version is compatible with TFLite implementation of Hard-Swish. hires_input_scale = (1.0 / 128.0) * float(input_scale) relu_scale = 3.0 / 32768.0 out_mul_real = hires_input_scale / float(output_scale) output_multiplier_fp, output_multiplier_exp = to_q15_exp(out_mul_real) relu_multiplier_fp, relu_multiplier_exp = to_q15_exp(relu_scale)

Parameters:
  • input[in] Pointer to the input buffer

  • input_offset[in] Input tensor zero offset

  • output_offset[in] Output tensor zero offset

  • output_multiplier_fp[in] Output multiplier in fixed point format

  • output_multiplier_exp[in] Exponent for output multiplier

  • relu_multiplier_fp[in] ReLU6 multiplier in fixed point format

  • relu_multiplier_exp[in] Exponent for ReLU6 multiplier

  • output[out] Pointer to the output buffer

  • output_size[in] Number of elements in the tensor

Returns:

The function returns ARM_MATH_SUCCESS