diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/armnn/INetwork.hpp | 8 | ||||
-rw-r--r-- | include/armnn/Types.hpp | 16 |
2 files changed, 23 insertions, 1 deletions
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp index ade6c52c90..49cd582e67 100644 --- a/include/armnn/INetwork.hpp +++ b/include/armnn/INetwork.hpp @@ -599,12 +599,15 @@ struct OptimizerOptions : m_ReduceFp32ToFp16(false) , m_Debug(false) , m_ReduceFp32ToBf16(false) + , m_shapeInferenceMethod(armnn::ShapeInferenceMethod::ValidateOnly) {} - OptimizerOptions(bool reduceFp32ToFp16, bool debug, bool reduceFp32ToBf16 = false) + OptimizerOptions(bool reduceFp32ToFp16, bool debug, bool reduceFp32ToBf16 = false, + ShapeInferenceMethod shapeInferenceMethod = armnn::ShapeInferenceMethod::ValidateOnly) : m_ReduceFp32ToFp16(reduceFp32ToFp16) , m_Debug(debug) , m_ReduceFp32ToBf16(reduceFp32ToBf16) + , m_shapeInferenceMethod(shapeInferenceMethod) { if (m_ReduceFp32ToFp16 && m_ReduceFp32ToBf16) { @@ -620,6 +623,9 @@ struct OptimizerOptions // Reduce Fp32 data to Bf16 for faster processing bool m_ReduceFp32ToBf16; + + // Infer output size when not available + ShapeInferenceMethod m_shapeInferenceMethod; }; /// Create an optimized version of the network diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp index 7c8a533e60..fb6f134766 100644 --- a/include/armnn/Types.hpp +++ b/include/armnn/Types.hpp @@ -143,6 +143,22 @@ enum class OutputShapeRounding 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 { |