Support QASYMM8 in relu-related operators (#2237)
author윤지영/동작제어Lab(SR)/Engineer/삼성전자 <jy910.yun@samsung.com>
Thu, 9 Aug 2018 05:49:47 +0000 (14:49 +0900)
committer이춘석/동작제어Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>
Thu, 9 Aug 2018 05:49:47 +0000 (14:49 +0900)
* Support QASYMM8 in relu-related operators

ReLU, ReLU1 and ReLU6 supports quantized operation
It adds QuantizationInfo to TensorInfo in operations that supports QASYMM8_TENSOR

Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
* Enable quant8 testcases of relu-related operator in GeneratedTests

Enable below GeneratedTests:
GeneratedTests.relu_quant8_1
GeneratedTests.relu_quant8_2
GeneratedTests.relu1_quant8_1
GeneratedTests.relu1_quant8_2
GeneratedTests.relu6_quant8_1
GeneratedTests.relu6_quant8_2

Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
runtimes/pure_arm_compute/src/compilation.cc
runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux

index f894d59..b2e3645 100644 (file)
@@ -2406,9 +2406,11 @@ void Planner::visit(const ::internal::tflite::op::ReLU::Node &node)
 
   // Set shape constraints
   _builder.addShapeConstr(ofm_index,
-                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type()));
+                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type(),
+                                       _ctx.at(ofm_index).scale(), _ctx.at(ofm_index).zeroPoint()));
   _builder.addShapeConstr(ifm_index,
-                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type()));
+                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type(),
+                                       _ctx.at(ifm_index).scale(), _ctx.at(ifm_index).zeroPoint()));
 
   struct Param
   {
@@ -2447,9 +2449,11 @@ void Planner::visit(const ::internal::tflite::op::ReLU1::Node &node)
 
   // Set shape constraints
   _builder.addShapeConstr(ofm_index,
-                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type()));
+                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type(),
+                                       _ctx.at(ofm_index).scale(), _ctx.at(ofm_index).zeroPoint()));
   _builder.addShapeConstr(ifm_index,
-                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type()));
+                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type(),
+                                       _ctx.at(ifm_index).scale(), _ctx.at(ifm_index).zeroPoint()));
 
   struct Param
   {
@@ -2488,9 +2492,11 @@ void Planner::visit(const ::internal::tflite::op::ReLU6::Node &node)
 
   // Set shape constraints
   _builder.addShapeConstr(ofm_index,
-                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type()));
+                          asTensorInfo(_ctx.at(ofm_index).shape(), _ctx.at(ofm_index).type(),
+                                       _ctx.at(ofm_index).scale(), _ctx.at(ofm_index).zeroPoint()));
   _builder.addShapeConstr(ifm_index,
-                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type()));
+                          asTensorInfo(_ctx.at(ifm_index).shape(), _ctx.at(ifm_index).type(),
+                                       _ctx.at(ifm_index).scale(), _ctx.at(ifm_index).zeroPoint()));
 
   struct Param
   {
index 62009c8..b5a7714 100644 (file)
@@ -34,8 +34,6 @@ GeneratedTests.lstm
 GeneratedTests.lstm_state2
 GeneratedTests.lstm_state
 GeneratedTests.relu1_float_2
-GeneratedTests.relu1_quant8_1
-GeneratedTests.relu1_quant8_2
 GeneratedTests.rnn
 GeneratedTests.rnn_state
 GeneratedTests.space_to_depth_float_1
@@ -114,11 +112,7 @@ GeneratedTests.mobilenet_quantized
 GeneratedTests.mul_broadcast_quant8
 GeneratedTests.mul_quant8
 GeneratedTests.relu6_float_2
-GeneratedTests.relu6_quant8_1
-GeneratedTests.relu6_quant8_2
 GeneratedTests.relu_float_2
-GeneratedTests.relu_quant8_1
-GeneratedTests.relu_quant8_2
 GeneratedTests.reshape_quant8_weights_as_inputs
 GeneratedTests.reshape_weights_as_inputs
 GeneratedTests.strided_slice_ex_float_1