IVGCVSW-4928 Introduce "ShapeInferenceMethod" Option.

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I70ef1a9f3cefa1d4cf9220f0e13131d11e7c6418
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 7c8a533..fb6f134 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -143,6 +143,22 @@
     Ceiling     = 1
 };
 
+///
+/// The ShapeInferenceMethod modify how the output shapes are treated.
+/// When ValidateOnly is selected, the output shapes are inferred from the input parameters of the layer
+/// and any mismatch is reported.
+/// When InferAndValidate is selected 2 actions must be performed: (1)infer output shape from inputs and (2)validate the
+/// shapes as in ValidateOnly. This option has been added to work with tensors which rank or dimension sizes are not
+/// specified explicitly, however this information can be calculated from the inputs.
+///
+enum class ShapeInferenceMethod
+{
+    /// Validate all output shapes
+    ValidateOnly     = 0,
+    /// Infer missing output shapes and validate all output shapes
+    InferAndValidate = 1
+};
+
 /// Each backend should implement an IBackend.
 class IBackend
 {