From 80512b0e1e98cb6782f5526fc8308ae6a571cd59 Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Mon, 16 May 2022 23:10:42 +0100 Subject: IVGCVSW-6929 Support for models with implicit expanded dimensions * Added allow-expanded-dims to TFLite parser and ArmNN delegate * If true ArmNN will disregard dimensions with a size of 1 when validating tensor shapes. Tensor sizes must still match. * This allows us to support models where tensors have expanded dimensions (i.e. extra dimensions with a size of 1). * Fixed bug in Network where it assumed that only the first option could be ShapeInferenceMethod. * Fixed bug where m_ShapeInferenceMethod was lost when copying or moving Graphs. * Changed Delegate to pass "infer-output-shape", "allow-expanded-dims" and other BackendOptions through to the Network during construction. Signed-off-by: Mike Kelly Change-Id: Ibe7c5ae6597796fc9164cb07bd372bd7f8f8cacf --- tests/ExecuteNetwork/ExecuteNetworkParams.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests/ExecuteNetwork/ExecuteNetworkParams.cpp') diff --git a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp index b3d18cdfd1..cc75bb4323 100644 --- a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp +++ b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp @@ -232,6 +232,11 @@ void ExecuteNetworkParams::ValidateParams() { ARMNN_LOG(warning) << "No input files provided, input tensors will be filled with 0s."; } + + if (m_AllowExpandedDims && m_InferOutputShape) + { + throw armnn::InvalidArgumentException("infer-output-shape and allow-expanded-dims cannot be used together."); + } } #if defined(ARMNN_TFLITE_DELEGATE) @@ -277,6 +282,22 @@ armnnDelegate::DelegateOptions ExecuteNetworkParams::ToDelegateOptions() const options.m_ModelOptions.push_back(gpuAcc); options.m_ModelOptions.push_back(cpuAcc); + if (m_InferOutputShape) + { + armnn::BackendOptions networkOption("ShapeInferenceMethod", + { + {"InferAndValidate", true} + }); + options.m_ModelOptions.push_back(networkOption); + } + if (m_AllowExpandedDims) + { + armnn::BackendOptions networkOption("AllowExpandedDims", + { + {"AllowExpandedDims", true} + }); + options.m_ModelOptions.push_back(networkOption); + } delegateOptions.SetOptimizerOptions(options); // If v,visualize-optimized-model is enabled then construct a file name for the dot file. -- cgit v1.2.1