From 06deacd58fbd4fbfd4884ab8024ef736f4f7105b Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Mon, 6 Jul 2020 11:45:50 +0100 Subject: IVGCVSW-4919 Strided Slice 0 Dimension Tensor Fix * Add check Axis' shrunk to 0 dimensions Signed-off-by: Ryan OShea Change-Id: Ic2544f7538d2df4a561f88ce8909533424fa2a25 --- src/armnn/layers/StridedSliceLayer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/armnn/layers/StridedSliceLayer.cpp b/src/armnn/layers/StridedSliceLayer.cpp index ae4fab0efd..fbe9815c06 100644 --- a/src/armnn/layers/StridedSliceLayer.cpp +++ b/src/armnn/layers/StridedSliceLayer.cpp @@ -49,6 +49,7 @@ std::vector StridedSliceLayer::InferOutputShapes( TensorShape inputShape = inputShapes[0]; std::vector outputShape; + unsigned int amountDimShrunk{0}; for (unsigned int i = 0; i < inputShape.GetNumDimensions(); i++) { @@ -58,6 +59,8 @@ std::vector StridedSliceLayer::InferOutputShapes( if (m_Param.m_ShrinkAxisMask & (1 << i)) { + amountDimShrunk+=1; + // If the difference between the start point and the end point of the slice on an axis being shrunk // is greater than 1 then throw an error as the output will not be large enough to hold the slice if (((m_Param.m_Begin[i] - m_Param.m_End[i]) > 1) || ((m_Param.m_Begin[i] - m_Param.m_End[i]) < -1)) @@ -82,6 +85,11 @@ std::vector StridedSliceLayer::InferOutputShapes( outputShape.push_back(boost::numeric_cast(newSize)); } + if (outputShape.size() == 0 && (inputShape.GetNumDimensions() - amountDimShrunk) == 0) + { + outputShape.push_back(1); + } + return std::vector({ TensorShape(boost::numeric_cast(outputShape.size()), &outputShape[0]) }); } -- cgit v1.2.1