diff --git a/mindspore/lite/src/runtime/kernel/arm/int8/add_int8.cc b/mindspore/lite/src/runtime/kernel/arm/int8/add_int8.cc index 92cd9402e9..c594e01b65 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/add_int8.cc +++ b/mindspore/lite/src/runtime/kernel/arm/int8/add_int8.cc @@ -54,8 +54,23 @@ int QuantizedAddCPUKernel::Init() { QuantizeMultiplierSmallerThanOne(real_input1_multiplier, ¶_.input1_multiplier_, ¶_.input1_shift_); QuantizeMultiplierSmallerThanOne(real_output_multiplier, ¶_.output_multiplier_, ¶_.output_shift_); - para_.output_activation_min_ = std::numeric_limits::min(); - para_.output_activation_max_ = std::numeric_limits::max(); + switch (arith_para_->activation_type_) { + case schema::ActivationType_RELU: + para_.output_activation_min_ = 0; + para_.output_activation_max_ = std::numeric_limits::max(); + break; + case schema::ActivationType_RELU6: + para_.output_activation_min_ = 0; + para_.output_activation_max_ = 6; + break; + case schema::ActivationType_NO_ACTIVATION: + para_.output_activation_min_ = std::numeric_limits::min(); + para_.output_activation_max_ = std::numeric_limits::max(); + break; + default: + MS_LOG(ERROR) << "Add does not support activation type " << arith_para_->activation_type_; + return RET_ERROR; + } int left_shift0 = -para_.input0_shift_ > 0 ? -para_.input0_shift_ : 0; para_.right_shift0_ = -para_.input0_shift_ > 0 ? 0 : para_.input0_shift_;