From 31044bef15c04df20019b2f40891589c4e69e221 Mon Sep 17 00:00:00 2001 From: Xianzhi Yu Date: Sun, 25 Aug 2024 15:13:32 +0800 Subject: [PATCH 1/2] fix arm int8 quant segmentation bug --- compute/tensor/src/cpu/arm/convolution.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compute/tensor/src/cpu/arm/convolution.cpp b/compute/tensor/src/cpu/arm/convolution.cpp index 58755021..c35eebb0 100644 --- a/compute/tensor/src/cpu/arm/convolution.cpp +++ b/compute/tensor/src/cpu/arm/convolution.cpp @@ -351,7 +351,7 @@ EE convolution_infer_forward_tmp_bytes_arm(TensorDesc inputDesc, if (fdt == DT_I8) { *bytes += ic * it * ih * iw; } - if ((odt == DT_I8) || (odt == DT_F32)) { + if (odt != DT_I32) { // scaled bias + results before quantization *bytes += (oc + on * oc * ot * oh * ow) * bytesOf(DT_I32); } From fafe6c82c2c4997b7893926b033e4510a0b7bd71 Mon Sep 17 00:00:00 2001 From: Xianzhi Yu Date: Sun, 25 Aug 2024 15:16:02 +0800 Subject: [PATCH 2/2] fix relu6 bug in QuantizationOptimizer.hpp --- model_tools/include/OPOptimizers/QuantizationOptimizer.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model_tools/include/OPOptimizers/QuantizationOptimizer.hpp b/model_tools/include/OPOptimizers/QuantizationOptimizer.hpp index c032a210..8fbf728d 100644 --- a/model_tools/include/OPOptimizers/QuantizationOptimizer.hpp +++ b/model_tools/include/OPOptimizers/QuantizationOptimizer.hpp @@ -219,7 +219,7 @@ class QuantizationOptimizer : public OPOptimizer { bool isNotNaiveRelu(OperatorSpec *op) { - return ((op->type == OT_Relu) && (op->ps.relu_spec.neg_slope != 0)); + return ((op->type == OT_Relu && op->ps.relu_spec.neg_slope != 0) || op->type == OT_Relu6); } bool isAvgPooling(OperatorSpec *op)