From c7d0d44812336f4db8ab9a649fb40b4d4ed27e97 Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Wed, 11 Dec 2019 19:27:11 +0000 Subject: Catch std::exception instead of armnn::Exception Signed-off-by: Derek Lamberti MLCE-143 Fix for reference implementation for service stopping when running CTS. *ConvertDepthwise reports that weights are not supported with the first dimension of the tensor is not 1 *ConvertConcat was missing one case for reporting unsupported inputs. Signed-off-by: Teresa Charlin MLCE-144 Cts NNAPI test cases failed * Fixed numerous CTS/VTS failures related to Quantization !armnn:2457 Signed-off-by: Mike Kelly MLCE-144 Fix 2d pooling convert function Signed-off-by: FinnWilliamsArm Change-Id: I054635ebfd52cb5575490c3bfaae0104eb1685cc --- ConversionUtils.hpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'ConversionUtils.hpp') diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp index cc06ccee..b631fb5a 100644 --- a/ConversionUtils.hpp +++ b/ConversionUtils.hpp @@ -1349,7 +1349,7 @@ bool ConvertPooling2d(const HalOperation& operation, LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); if (!input.IsValid()) { - return Fail("%s: Could not read input 0", operationName); + return Fail("%s: Operation Could not read input 0", operationName); } const HalOperand* output = GetOutputOperand(operation, 0, model); @@ -1410,16 +1410,17 @@ bool ConvertPooling2d(const HalOperation& operation, return Fail("%s: Operation has invalid inputs", operationName); } - const unsigned int inputWidth = inputInfo.GetShape()[2]; - const unsigned int inputHeight = inputInfo.GetShape()[1]; - - CalcPadding(inputWidth, desc.m_PoolWidth, desc.m_StrideX, desc.m_PadLeft, desc.m_PadRight, scheme); - CalcPadding(inputHeight, desc.m_PoolHeight, desc.m_StrideY, desc.m_PadTop, desc.m_PadBottom, scheme); - if (Is12Operand(*output)) { desc.m_DataLayout = OptionalDataLayout(operation, 7, model, data); } + + const armnnUtils::DataLayoutIndexed dataLayout(desc.m_DataLayout); + const unsigned int inputWidth = inputInfo.GetShape()[dataLayout.GetWidthIndex()]; + const unsigned int inputHeight = inputInfo.GetShape()[dataLayout.GetHeightIndex()]; + + CalcPadding(inputWidth, desc.m_PoolWidth, desc.m_StrideX, desc.m_PadLeft, desc.m_PadRight, scheme); + CalcPadding(inputHeight, desc.m_PoolHeight, desc.m_StrideY, desc.m_PadTop, desc.m_PadBottom, scheme); } bool isSupported = false; @@ -1587,10 +1588,13 @@ bool ConvertConcatenation(const Operation& operation, const Model& model, Conver return Fail("%s: Operation has invalid inputs", __func__); } - armnn::TensorShape operandShape = GetTensorShapeForOperand(*operand); - LayerInputHandle operandInputHandle = - ConvertToLayerInputHandle(operation, i, model, data); + LayerInputHandle operandInputHandle = ConvertToLayerInputHandle(operation, i, model, data); + if (!operandInputHandle.IsValid()) + { + return Fail("%s: Operation has invalid inputs", __func__); + } + armnn::TensorShape operandShape = GetTensorShapeForOperand(*operand); if (operandShape.GetNumDimensions() == 0) { return Fail("%s: Operands with rank 0 are not supported", __func__); @@ -1681,7 +1685,7 @@ bool ConvertConcatenation(const Operation& operation, const Model& model, Conver concatDescriptor = armnn::CreateDescriptorForConcatenation(inputShapes.begin(), inputShapes.end(), concatDim); } - catch (const armnn::Exception& error) + catch (std::exception& error) { return Fail("%s: Error preparing concat descriptor. %s", __func__, error.what()); } -- cgit v1.2.1