aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2020-03-04 18:01:13 +0000
committermike.kelly <mike.kelly@arm.com>2020-03-09 15:22:58 +0000
commit1ced464ac64b3a76c3577b99ef99d2e9c9991400 (patch)
tree956ef72d654c85f2077f8e26925da7cfafdc5cfa /src
parent6f86b69989de2469c0d7cac4c685cd081e6cf812 (diff)
downloadarmnn-1ced464ac64b3a76c3577b99ef99d2e9c9991400.tar.gz
MLCE-160 Error loading quantized model containing BatchNorm Layer
* Relaxed restrictions in BatchNormalizationQueueDescriptor::Validate Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I3101971c2101e90144bbbf7b63367cb0ef09573f
Diffstat (limited to 'src')
-rw-r--r--src/backends/backendsCommon/WorkloadData.cpp1
-rw-r--r--src/backends/backendsCommon/test/WorkloadDataValidation.cpp24
2 files changed, 24 insertions, 1 deletions
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index 9b7a2429d6..dbd1158380 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -1120,7 +1120,6 @@ void BatchNormalizationQueueDescriptor::Validate(const WorkloadInfo& workloadInf
ValidateDataTypes(outputTensorInfo, supportedTypes, descriptorName);
ValidateTensorDataTypesMatch(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
- ValidateTensorQuantizationSpace(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
ValidateTensorShapesMatch(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
ValidatePointer(m_Mean, descriptorName, "mean");
diff --git a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
index 5c60e9e552..d48a2bb091 100644
--- a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
+++ b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
@@ -19,7 +19,31 @@ using namespace armnn;
BOOST_AUTO_TEST_SUITE(WorkloadInfoValidation)
+BOOST_AUTO_TEST_CASE(BatchNormalizationQueueDescriptor_Validate_DifferentQuantizationData)
+{
+ TensorShape inputShape { 1, 3, 2, 2 };
+ TensorShape outputShape { 1, 3, 2, 2 };
+
+ TensorInfo inputTensorInfo(inputShape, armnn::DataType::QAsymmU8, .1f, 125);
+ TensorInfo outputTensorInfo(outputShape, armnn::DataType::QAsymmU8, .2f, 120);
+
+ BatchNormalizationQueueDescriptor invalidData;
+ WorkloadInfo invalidInfo;
+ unsigned int sameShape[] = { 10 };
+ TensorInfo sameInfo = armnn::TensorInfo(1, sameShape, armnn::DataType::QAsymmU8);
+ ScopedCpuTensorHandle sameTensor(sameInfo);
+
+ AddInputToWorkload(invalidData, invalidInfo, inputTensorInfo, nullptr);
+ AddOutputToWorkload(invalidData, invalidInfo, outputTensorInfo, nullptr);
+
+ invalidData.m_Mean = &sameTensor;
+ invalidData.m_Variance = &sameTensor;
+ invalidData.m_Beta= &sameTensor;
+ invalidData.m_Gamma = &sameTensor;
+
+ BOOST_CHECK_NO_THROW(RefBatchNormalizationWorkload(invalidData, invalidInfo));
+}
BOOST_AUTO_TEST_CASE(QueueDescriptor_Validate_WrongNumOfInputsOutputs)
{