diff options
author | Colm Donelan <Colm.Donelan@arm.com> | 2021-03-30 15:30:13 +0100 |
---|---|---|
committer | Colm Donelan <Colm.Donelan@arm.com> | 2021-03-30 16:03:59 +0100 |
commit | ccfeb5ea9d3aa17f66c1c13f1682ac519c8973c0 (patch) | |
tree | 04435e8741fb356c60b5e02113aad23d99d2ef66 /ConversionUtils.hpp | |
parent | 2e4a24aafc622c00d14ad2dcc684d05dfaacfe33 (diff) | |
download | android-nn-driver-ccfeb5ea9d3aa17f66c1c13f1682ac519c8973c0.tar.gz |
IVGCVSW-5766 Avoiding driver abort when Cts tests use invalid filter shape.
* A number of DepthwiseConv2d Cts tests pass a filter operand with a
dimension[0] value greater than 1 in contravention of Android
documentation. Adding a check to handle this gracefully.
* Changing a hard assert in ConversionUtils::ConstTensorPin to a warning.
Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
Change-Id: I605340d098b717d1d88d259a0ed89a801287764d
Diffstat (limited to 'ConversionUtils.hpp')
-rw-r--r-- | ConversionUtils.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp index e5f99ed4..439d4a4a 100644 --- a/ConversionUtils.hpp +++ b/ConversionUtils.hpp @@ -2559,6 +2559,14 @@ bool ConvertDepthwiseConv2d(const HalOperation& operation, const HalModel& model { return Fail("%s: Operand is invalid", __func__); } + // Basic sanity check on the weights shape. + // ANEURALNETWORKS_DEPTHWISE_CONV_2D specifies a 4-D tensor, of shape + // [1, filter_height, filter_width, depth_out] + if (weightsOperand->dimensions[0] != 1) + { + return Fail("%s: Filter operand dimension 0 is invalid, should be 1", __func__); + } + armnn::DepthwiseConvolution2dDescriptor desc; desc.m_DataLayout = armnn::DataLayout::NHWC; |