From 1fedd4c7dac29eb3f2b5f197ecc748ec1e1a0949 Mon Sep 17 00:00:00 2001 From: Bin Li Date: Fri, 17 Aug 2018 18:03:55 +0800 Subject: [PATCH] Update depthwise test and pooling scale and zero point --- mace/kernels/pooling.h | 8 ++++---- mace/ops/depthwise_conv2d_test.cc | 10 +++++----- mace/ops/pooling_test.cc | 7 +------ 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/mace/kernels/pooling.h b/mace/kernels/pooling.h index f5aa606b..94a388be 100644 --- a/mace/kernels/pooling.h +++ b/mace/kernels/pooling.h @@ -373,10 +373,10 @@ struct PoolingFunctor: PoolingFunctorBase { MACE_UNUSED(future); MACE_CHECK(dilations_[0] == 1 && dilations_[1] == 1, "Quantized pooling does not support dilation > 1 yet."); - MACE_CHECK(input_tensor->scale() == output_tensor->scale(), - "Quantized pooling's input and output scale are not equal."); - MACE_CHECK(input_tensor->zero_point() == output_tensor->zero_point(), - "Quantized pooling's input and output zero_point are not equal"); + // Use the same scale and zero point with input and output. + output_tensor->SetScale(input_tensor->scale()); + output_tensor->SetZeroPoint(input_tensor->zero_point()); + std::vector output_shape(4); std::vector filter_shape = { input_tensor->dim(3), kernels_[0], kernels_[1], input_tensor->dim(3)}; diff --git a/mace/ops/depthwise_conv2d_test.cc b/mace/ops/depthwise_conv2d_test.cc index 0da8041d..a2d57911 100644 --- a/mace/ops/depthwise_conv2d_test.cc +++ b/mace/ops/depthwise_conv2d_test.cc @@ -497,11 +497,11 @@ void TestQuant(const index_t batch, TEST_F(DepthwiseConv2dOpTest, Quant) { QuantSimpleValidTest(); - TestQuant(1, 1, 2, 3, 3, 3, 3, VALID, {1, 1}); - TestQuant(1, 1, 2, 3, 3, 3, 3, SAME, {1, 1}); - TestQuant(1, 1, 2, 3, 3, 3, 3, FULL, {1, 1}); - TestQuant(1, 2, 2, 3, 3, 3, 3, SAME, {1, 1}); - TestQuant(1, 2, 2, 3, 3, 3, 3, SAME, {2, 2}); + TestQuant(1, 1, 1024, 7, 7, 3, 3, VALID, {1, 1}); + TestQuant(1, 1, 1024, 7, 7, 3, 3, SAME, {1, 1}); + TestQuant(1, 1, 1024, 7, 7, 3, 3, FULL, {1, 1}); + TestQuant(1, 2, 1024, 7, 7, 3, 3, SAME, {1, 1}); + TestQuant(1, 2, 1024, 7, 7, 3, 3, SAME, {2, 2}); TestQuant(1, 1, 512, 14, 14, 3, 3, SAME, {1, 1}); TestQuant(1, 1, 512, 14, 13, 5, 5, SAME, {2, 2}); TestQuant(1, 1, 256, 28, 28, 3, 3, SAME, {1, 1}); diff --git a/mace/ops/pooling_test.cc b/mace/ops/pooling_test.cc index af900f58..f0ac2572 100644 --- a/mace/ops/pooling_test.cc +++ b/mace/ops/pooling_test.cc @@ -603,12 +603,7 @@ void TestQuant(const index_t batch, .AddIntArg("pooling_type", pooling) .AddIntArg("T", DT_UINT8) .Finalize(net.NewOperatorDef()); - net.Setup(DeviceType::CPU); - Tensor *q_input = net.GetTensor("QuantizedInput"); - Tensor *q_output = net.GetTensor("QuantizedOutput"); - q_output->SetScale(q_input->scale()); - q_output->SetZeroPoint(q_input->zero_point()); - net.Run(); + net.RunOp(); OpDefBuilder("Dequantize", "DeQuantizeTest") .Input("QuantizedOutput") -- GitLab