aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2019-10-31 17:05:47 +0000
committerTeresaARM <teresa.charlinreyes@arm.com>2019-11-01 10:40:04 +0000
commit3b959603ab1e3dc7b7b70798f357b3fe6c0e47c8 (patch)
tree2b481126e64921fd26a5d34db513b249286d9347
parent3e0982b5f54cf2b90f319de417debf386cadcb30 (diff)
downloadandroid-nn-driver-3b959603ab1e3dc7b7b70798f357b3fe6c0e47c8.tar.gz
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 <teresa.charlinreyes@arm.com> Change-Id: I7759ad2fea55d272e98b9eabbf4821dc9ac826e1
-rw-r--r--1.2/HalPolicy.cpp6
-rw-r--r--ConversionUtils.hpp9
2 files changed, 12 insertions, 3 deletions
diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp
index 86b3bb78..7e9a2233 100644
--- a/1.2/HalPolicy.cpp
+++ b/1.2/HalPolicy.cpp
@@ -420,6 +420,12 @@ bool HalPolicy::ConvertDepthwiseConv2d(const Operation& operation, const Model&
{
return Fail("%s: Operand is invalid", __func__);
}
+ if ( weightsOperand->dimensions[0] != 1)
+ {
+ return Fail("%s: Invalid weights; for depthwise convolution, dimension 0 must be 1 but it is %i",
+ __func__, weightsOperand->dimensions[0] );
+ }
+
DepthwiseConvolution2dDescriptor desc;
desc.m_DataLayout = DataLayout::NHWC;
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp
index de255803..e4ac4a5a 100644
--- a/ConversionUtils.hpp
+++ b/ConversionUtils.hpp
@@ -1590,10 +1590,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<HalPolicy>(operation, i, model, data);
+ LayerInputHandle operandInputHandle = ConvertToLayerInputHandle<HalPolicy>(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__);