aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Network.cpp
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2022-09-28 17:13:20 +0100
committerColm Donelan <colm.donelan@arm.com>2022-10-04 09:02:08 +0000
commit71ebf5f0b94cbe5ac3abcc6e8de8ce10753eba99 (patch)
treee57f6c4445edf5a7c24ce839491c0d4b30d3eed5 /src/armnn/Network.cpp
parentcddfc28cc65386541b92dfa4a16321a276dba99d (diff)
downloadarmnn-71ebf5f0b94cbe5ac3abcc6e8de8ce10753eba99.tar.gz
MLCE-545 INT8 TFLite model execution abnormal
* Fix for Debug mode in ExNet does not work with ConstTensorsAsInputs * Remove unnecessary assertion with ambiguous message in LoadedNetwork Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I9cd5d1f811dbbc89072d1190c510bf1b22e3069c
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;
}