aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Network.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r--src/armnn/Network.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 3508ee882e..5930805f11 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -1797,6 +1797,17 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph,
throw InvalidArgumentException("Failed to apply the backend-specific optimizations");
}
+ // Convert constants
+ {
+ ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Optimizer_ConvertConstants");
+ Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsFloatToHalf()));
+ Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsHalfToFloat()));
+
+ // Once the constants are converted we can now safely call RedirectMembersToConstantInputs
+ Optimizer::Pass(optGraph, MakeOptimizations(RedirectMembersToConstantInputs()));
+ }
+
+ // This must occur after all topological changes to the graph and any redirection of variables
// If the debug flag is set, then insert a DebugLayer after each layer
// Doing this after applying the backend optimizations as they might have changed some layers
if (options.m_Debug)
@@ -1824,15 +1835,6 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph,
optGraph.AddCompatibilityLayers(backends, tensorHandleFactoryRegistry);
}
- // Convert constants
- {
- ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Optimizer_ConvertConstants");
- Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsFloatToHalf()));
- Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsHalfToFloat()));
-
- // Once the constants are converted we can now safely call RedirectMembersToConstantInputs
- Optimizer::Pass(optGraph, MakeOptimizations(RedirectMembersToConstantInputs()));
- }
return optNet;
}