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.cpp b/Utils.cpp
index 6481c28..d94a937 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -200,6 +200,9 @@
         case V1_3::OperandType::TENSOR_INT32:
             type = armnn::DataType::Signed32;
             break;
+        case V1_3::OperandType::INT32:
+            type = armnn::DataType::Signed32;
+            break;
         case V1_3::OperandType::TENSOR_QUANT8_ASYMM_SIGNED:
             type = armnn::DataType::QAsymmS8;
             break;
@@ -207,7 +210,17 @@
             throw UnsupportedOperand<V1_3::OperandType>(operand.type);
     }
 
-    TensorInfo ret(operand.dimensions.size(), operand.dimensions.data(), type);
+    TensorInfo ret;
+    // 0 dimensional tensors will be flagged as scalars
+    if ( operand.dimensions.size() != 0)
+    {
+        ret = TensorInfo(operand.dimensions.size(), operand.dimensions.data(), type);
+    }
+    else
+    {
+        ret = TensorInfo(TensorShape(armnn::Dimensionality::Scalar), type);
+    }
+
     if (perChannel)
     {
         // ExtraParams is expected to be of type channelQuant
@@ -224,7 +237,6 @@
         ret.SetQuantizationScale(operand.scale);
         ret.SetQuantizationOffset(operand.zeroPoint);
     }
-
     return ret;
 }