[MS][Lite][Develop] conv real multiplier bug

pull/5750/head
ling 5 years ago
parent 4ffee2889c
commit 1ba895b280

@ -29,7 +29,7 @@
#define OUTPUT_PER_CHANNEL 0b100
typedef struct QuantArg {
double scale_;
float scale_;
int32_t zp_;
} QuantArg;

@ -273,9 +273,9 @@ int ConvolutionBaseCPUKernel::SetQuantMultiplier() {
conv_quant_arg_->out_act_max_ = reinterpret_cast<int32_t *>(malloc(sizeof(int32_t)));
for (int i = 0; i < weight_arg_num; ++i) {
double real_multiplier = conv_quant_arg_->filter_quant_args_[i].scale_ *
conv_quant_arg_->input_quant_args_[0].scale_ /
conv_quant_arg_->output_quant_args_[0].scale_;
const double in_scale =
static_cast<double>(conv_quant_arg_->input_quant_args_[0].scale_ * conv_quant_arg_->filter_quant_args_[i].scale_);
double real_multiplier = in_scale / static_cast<double>(conv_quant_arg_->output_quant_args_[0].scale_);
conv_quant_arg_->real_multiplier_[i] = real_multiplier;
QuantizeRoundParameter(real_multiplier, &conv_quant_arg_->quant_multiplier_[i], &conv_quant_arg_->left_shift_[i],
&conv_quant_arg_->right_shift_[i]);

@ -9,7 +9,7 @@ mobilenet_v1_0.75_128_quant.tflite
mobilenet_v1_0.75_160_quant.tflite
mobilenet_v1_1.0_128_quant.tflite
mobilenet_v1_1.0_160_quant.tflite
mobilenet_v1_1.0_224_quant.tflite
#mobilenet_v1_1.0_224_quant.tflite
mobilenet_v2_1.0_224_quant.tflite
hiai_graph_8bit_combined.tflite
inception_v1_224_quant.tflite

Loading…
Cancel
Save