diff --git a/paddle/fluid/operators/fake_dequantize_op.cc b/paddle/fluid/operators/fake_dequantize_op.cc index e01adae4dd8f59b29121fe5b05c1080b3d9e8fb1..cd094577e6b20ee766536a9f393ad17343a26a36 100644 --- a/paddle/fluid/operators/fake_dequantize_op.cc +++ b/paddle/fluid/operators/fake_dequantize_op.cc @@ -29,7 +29,7 @@ struct DequantizeFunctor { auto out_e = framework::EigenVector::Flatten(*out); auto& dev = *dev_ctx.eigen_device(); - out_e.device(dev) = (scale_factor[0] / max_range) * in_e; + out_e.device(dev) = scale_factor[0] * in_e / max_range; } }; @@ -48,7 +48,7 @@ struct ChannelDequantizeFunctor { auto in_e = framework::EigenVector::Flatten(one_channel_in); auto out_e = framework::EigenVector::Flatten(one_channel_out); auto& dev = *dev_ctx.eigen_device(); - out_e.device(dev) = (s / max_range) * in_e; + out_e.device(dev) = s * in_e / max_range; } } else if (scale_num == 2) { int batch_size = in->dims()[0]; @@ -67,7 +67,7 @@ struct ChannelDequantizeFunctor { auto in_e = framework::EigenVector::Flatten(one_channel_in); auto out_e = framework::EigenVector::Flatten(one_channel_out); auto& dev = *dev_ctx.eigen_device(); - out_e.device(dev) = (s * scale_two[0] / max_range) * in_e; + out_e.device(dev) = (s * scale_two[0]) * in_e / max_range; } } }