diff options
author | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-04-26 15:38:45 +0100 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-05-02 08:57:02 +0000 |
commit | a62129a02397ba87171ebf4477795f628dcec0f6 (patch) | |
tree | 91e53cc8982d9f16e66db53f81830fb05da83596 /arm_compute/core | |
parent | f0ff76dbfc9137d0dfc5e99666e24c7a2ca8b072 (diff) | |
download | ComputeLibrary-a62129a02397ba87171ebf4477795f628dcec0f6.tar.gz |
Fix fully connected and matmul mismatches
* There is an issue with quantized fully connected and matmul
when the lower bound of bounded ReLU is negative.
* Use int32_t for the calculation of min/max quantized value
rather than PixelValue to avoid this issue.
Partially resolves: COMPMID-5996
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: I7b22e9d56a2441fc6a4c5c4e627f57d6e00d6ff1
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9502
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/utils/quantization/AsymmHelpers.h | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/arm_compute/core/utils/quantization/AsymmHelpers.h b/arm_compute/core/utils/quantization/AsymmHelpers.h index 9e1e9668fb..a9041762f5 100644 --- a/arm_compute/core/utils/quantization/AsymmHelpers.h +++ b/arm_compute/core/utils/quantization/AsymmHelpers.h @@ -82,18 +82,6 @@ Status calculate_quantized_multipliers(const QuantizationInfo &iq_info, */ std::pair<int, int> get_min_max_values_from_quantized_data_type(DataType data_type); -/** Get minimum and maximum output of the activation function after quantization. - * - * Only ReLU, upper bounded ReLU and lower+upper bounded ReLU are supported. - * - * @param[in] q_info Output quantization info. - * @param[in] act_info Activation function information. - * @param[in] data_type Output data type (either QASYMM8 or QASYMM8_SIGNED). - * - * @return The minimum and maximum output of the activation function after quantization. - */ -std::tuple<PixelValue, PixelValue> get_quantized_asymmetric_output_min_max(const QuantizationInfo &q_info, const ActivationLayerInfo &act_info, DataType data_type); - /** Compute quantized per-channel multipliers and shifts. As many multipliers * and shifts as output channels are computed. If weights are not quantized * per-channel, multipliers and shifts will end up being the same for each |