Add support for Rank and scalar tensors
!armnn:3330
Signed-off-by: Finn Williams <Finn.Williams@Arm.com>
Change-Id: Icc429d9fabb570193d12bffef0e00dda7b51032f
diff --git a/Utils.hpp b/Utils.hpp
index b61ddb2..d58d273 100644
--- a/Utils.hpp
+++ b/Utils.hpp
@@ -150,18 +150,24 @@
{
V1_2::OutputShape shape;
- android::hardware::hidl_vec<uint32_t> dimensions;
-
armnn::TensorShape tensorShape = info.GetShape();
- const unsigned int numDims = tensorShape.GetNumDimensions();
- dimensions.resize(numDims);
-
- for (unsigned int outputIdx = 0u; outputIdx < numDims; ++outputIdx)
+ // Android will expect scalars as a zero dimensional tensor
+ if(tensorShape.GetDimensionality() == armnn::Dimensionality::Scalar)
{
- dimensions[outputIdx] = tensorShape[outputIdx];
+ shape.dimensions = android::hardware::hidl_vec<uint32_t>{};
+ }
+ else
+ {
+ android::hardware::hidl_vec<uint32_t> dimensions;
+ const unsigned int numDims = tensorShape.GetNumDimensions();
+ dimensions.resize(numDims);
+ for (unsigned int outputIdx = 0u; outputIdx < numDims; ++outputIdx)
+ {
+ dimensions[outputIdx] = tensorShape[outputIdx];
+ }
+ shape.dimensions = dimensions;
}
- shape.dimensions = dimensions;
shape.isSufficient = true;
return shape;