diff --git a/mace/ops/quantize.cc b/mace/ops/quantize.cc index 3b2ea301265ec016dff3e1c00e04165e3654679e..3bed43b604cd64b9abffeb0b2f5bd18308a517ef 100644 --- a/mace/ops/quantize.cc +++ b/mace/ops/quantize.cc @@ -33,7 +33,10 @@ class QuantizeOp : public Operation { explicit QuantizeOp(OpConstructContext *context) : Operation(context), non_zero_( - static_cast(Operation::GetOptionalArg("non_zero", 0))) {} + static_cast(Operation::GetOptionalArg("non_zero", 0))), + find_range_every_time_(static_cast(Operation::GetOptionalArg( + "find_range_every_time", + 0))) {} MaceStatus Run(OpContext *context) override { MACE_UNUSED(context); @@ -44,7 +47,7 @@ class QuantizeOp : public Operation { Tensor::MappingGuard output_guard(output); const float *input_data = input->data(); uint8_t *output_data = output->mutable_data(); - if (output->scale() > 0.f) { + if (!find_range_every_time_ && output->scale() > 0.f) { QuantizeWithScaleAndZeropoint(input_data, input->size(), output->scale(), @@ -67,6 +70,7 @@ class QuantizeOp : public Operation { private: bool non_zero_; + bool find_range_every_time_; }; template