From 490b7becb8029ead26423b0d62e631a929e55d6c Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Tue, 3 Mar 2020 12:39:09 +0000 Subject: IVGCVSW-4375 Add support for Transpose to optimizations * Changed some existing Permutation specific optimizations to also support Transpose * Added MoveTransposeUp optimization * Added TransposeAsReshape optimization * Added tests for Transpose optimizations * Added missing layer tests for Transpose Signed-off-by: Mike Kelly Change-Id: I20d099b284861402ae94aaa5dbf34907327a485f --- src/armnn/optimizations/OptimizeInversePermutes.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/armnn/optimizations/OptimizeInversePermutes.hpp') diff --git a/src/armnn/optimizations/OptimizeInversePermutes.hpp b/src/armnn/optimizations/OptimizeInversePermutes.hpp index 48bfa35440..77d62a50cb 100644 --- a/src/armnn/optimizations/OptimizeInversePermutes.hpp +++ b/src/armnn/optimizations/OptimizeInversePermutes.hpp @@ -13,6 +13,7 @@ namespace armnn namespace optimizations { +template class OptimizeInversePermutesImpl { public: @@ -22,9 +23,9 @@ public: { boost::ignore_unused(graph); Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer(); - auto child = boost::polymorphic_downcast(&connection.GetOwningLayer()); + auto child = boost::polymorphic_downcast(&connection.GetOwningLayer()); - if (child->IsInverse(*boost::polymorphic_downcast(&base))) + if (child->IsInverse(*boost::polymorphic_downcast(&base))) { // Bypass both layers. Child will be removed as it's left unconnected. // Base layer will be removed if left unconnected. @@ -37,7 +38,10 @@ protected: ~OptimizeInversePermutesImpl() = default; }; -using OptimizeInversePermutes = OptimizeForConnection; +using OptimizeInversePermutes = OptimizeForConnection>; +using OptimizeInverseTransposes = OptimizeForConnection>; } // namespace optimizations } // namespace armnn -- cgit v1.2.1