From fcc72f53c56683fe697ac23662c49af09048a428 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Fri, 14 Oct 2022 11:20:07 +0100 Subject: IVGCVSW-7267 Make the AllowExpandedDims option work Signed-off-by: Jim Flynn Change-Id: I3573078206272c3a72a2b3acf8781ab458ea6c90 --- include/armnn/INetwork.hpp | 14 +++++++++++--- include/armnn/backends/OptimizationViews.hpp | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'include/armnn') diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp index fefb2ebc2d..0289a90e71 100644 --- a/include/armnn/INetwork.hpp +++ b/include/armnn/INetwork.hpp @@ -135,6 +135,7 @@ struct OptimizerOptions , m_ModelOptions() , m_ProfilingEnabled(false) , m_ExportEnabled(false) + , m_AllowExpandedDims(false) {} OptimizerOptions(bool reduceFp32ToFp16, bool debug, bool reduceFp32ToBf16, bool importEnabled, @@ -147,6 +148,7 @@ struct OptimizerOptions , m_ModelOptions(modelOptions) , m_ProfilingEnabled(false) , m_ExportEnabled(exportEnabled) + , m_AllowExpandedDims(false) { if (m_ReduceFp32ToFp16 && m_ReduceFp32ToBf16) { @@ -156,7 +158,8 @@ struct OptimizerOptions OptimizerOptions(bool reduceFp32ToFp16, bool debug, bool reduceFp32ToBf16 = false, ShapeInferenceMethod shapeInferenceMethod = armnn::ShapeInferenceMethod::ValidateOnly, - bool importEnabled = false, ModelOptions modelOptions = {}, bool exportEnabled = false) + bool importEnabled = false, ModelOptions modelOptions = {}, bool exportEnabled = false, + bool allowExpandedDims = false) : m_ReduceFp32ToFp16(reduceFp32ToFp16) , m_Debug(debug) , m_ReduceFp32ToBf16(reduceFp32ToBf16) @@ -165,6 +168,7 @@ struct OptimizerOptions , m_ModelOptions(modelOptions) , m_ProfilingEnabled(false) , m_ExportEnabled(exportEnabled) + , m_AllowExpandedDims(allowExpandedDims) { if (m_ReduceFp32ToFp16 && m_ReduceFp32ToBf16) { @@ -184,6 +188,7 @@ struct OptimizerOptions stream << "\tImportEnabled: " << m_ImportEnabled << "\n"; stream << "\tExportEnabled: " << m_ExportEnabled << "\n"; stream << "\tProfilingEnabled: " << m_ProfilingEnabled << "\n"; + stream << "\tAllowExpandedDims: " << m_AllowExpandedDims << "\n"; stream << "\tModelOptions: \n"; for (auto optionsGroup : m_ModelOptions) @@ -231,6 +236,9 @@ struct OptimizerOptions // Enable Export bool m_ExportEnabled; + + // When calculating tensor sizes dimensions of size == 1 will be ignored + bool m_AllowExpandedDims; }; class IWorkloadFactory; @@ -246,8 +254,8 @@ using CompiledBlobPtr = std::unique_ptr; class INetwork { public: - static INetwork* CreateRaw(NetworkOptions networkOptions = {}); - static INetworkPtr Create(NetworkOptions networkOptions = {}); + static INetwork* CreateRaw(const NetworkOptions& networkOptions = {}); + static INetworkPtr Create(const NetworkOptions& networkOptions = {}); static void Destroy(INetwork* network); Status PrintGraph(); diff --git a/include/armnn/backends/OptimizationViews.hpp b/include/armnn/backends/OptimizationViews.hpp index a7714ee0fa..110c5f7492 100644 --- a/include/armnn/backends/OptimizationViews.hpp +++ b/include/armnn/backends/OptimizationViews.hpp @@ -13,7 +13,7 @@ namespace armnn class OptimizationViews { public: - OptimizationViews(NetworkOptions networkOptions = {}) : m_INetwork(INetwork::Create(networkOptions)) {} + OptimizationViews(const NetworkOptions& networkOptions = {}) : m_INetwork(INetwork::Create(networkOptions)) {} OptimizationViews(const OptimizationViews&) = delete; OptimizationViews& operator=(const OptimizationViews&) = delete; OptimizationViews(OptimizationViews&&) = default; @@ -72,7 +72,7 @@ private: /// INetworkPtr object used only as a container for any layer generated by the optimization process /// Also, can use to AddPrecompiledLayer to the SubstitutionPair /// Use in favour of m_Graph which depreciates in 23.08 - INetworkPtr m_INetwork = INetwork::Create();; + INetworkPtr m_INetwork = INetwork::Create(); }; } //namespace armnn -- cgit v1.2.1