IVGCVSW-3234 Ensure that Quantizer allows different quantization scales
on inputs and output of Concat layer
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Idd79e44dbf49345aced3ddeeb8a53c9776f9f5d5
diff --git a/src/armnn/test/QuantizerTest.cpp b/src/armnn/test/QuantizerTest.cpp
index 48602d3..581991b 100644
--- a/src/armnn/test/QuantizerTest.cpp
+++ b/src/armnn/test/QuantizerTest.cpp
@@ -86,6 +86,11 @@
}
}
+ void TestDifferentQuantizationScale(const TensorInfo& info0, const TensorInfo& info1)
+ {
+ BOOST_TEST(info0.GetQuantizationScale() != info1.GetQuantizationScale());
+ }
+
void TestConstantQuantizationParams(const TensorInfo& info,
const OffsetScalePair& params,
DataType dataType = DataType::QuantisedAsymm8)
@@ -1319,10 +1324,19 @@
const OriginsDescriptor& originsDescriptor,
const char* name = nullptr) override
{
- TensorInfo info = layer->GetOutputSlot(0).GetTensorInfo();
+ TensorInfo outputInfo = layer->GetOutputSlot(0).GetTensorInfo();
TestQuantizationParams(
- info, {60.8f / g_Asymm8QuantizationBase, 65}, {45.3f / g_Symm16QuantizationBase, 0});
+ outputInfo, {60.8f / g_Asymm8QuantizationBase, 65}, {45.3f / g_Symm16QuantizationBase, 0});
+
+ TensorInfo inputInfo0 = layer->GetInputSlot(0).GetConnection()->GetTensorInfo();
+ TensorInfo inputInfo1 = layer->GetInputSlot(1).GetConnection()->GetTensorInfo();
+ TensorInfo inputInfo2 = layer->GetInputSlot(2).GetConnection()->GetTensorInfo();
+
+ TestDifferentQuantizationScale(inputInfo0, inputInfo1);
+ TestDifferentQuantizationScale(inputInfo0, inputInfo2);
+ TestDifferentQuantizationScale(inputInfo1, inputInfo2);
+ TestDifferentQuantizationScale(inputInfo0, outputInfo);
}
};