diff options
author | Mike Kelly <mike.kelly@arm.com> | 2020-03-03 12:39:09 +0000 |
---|---|---|
committer | mike.kelly <mike.kelly@arm.com> | 2020-03-03 15:05:30 +0000 |
commit | 490b7becb8029ead26423b0d62e631a929e55d6c (patch) | |
tree | 31148ace54164f62927062b662b2526f22a02e95 /src/armnn/optimizations/OptimizeInversePermutes.hpp | |
parent | 4a9e24bfc51eec7e593470091fb7e6e435ae3991 (diff) | |
download | armnn-490b7becb8029ead26423b0d62e631a929e55d6c.tar.gz |
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 <mike.kelly@arm.com>
Change-Id: I20d099b284861402ae94aaa5dbf34907327a485f
Diffstat (limited to 'src/armnn/optimizations/OptimizeInversePermutes.hpp')
-rw-r--r-- | src/armnn/optimizations/OptimizeInversePermutes.hpp | 10 |
1 files changed, 7 insertions, 3 deletions
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 <typename PermuteType> class OptimizeInversePermutesImpl { public: @@ -22,9 +23,9 @@ public: { boost::ignore_unused(graph); Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer(); - auto child = boost::polymorphic_downcast<PermuteLayer*>(&connection.GetOwningLayer()); + auto child = boost::polymorphic_downcast<PermuteType*>(&connection.GetOwningLayer()); - if (child->IsInverse(*boost::polymorphic_downcast<PermuteLayer*>(&base))) + if (child->IsInverse(*boost::polymorphic_downcast<PermuteType*>(&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<PermuteLayer, PermuteLayer, OptimizeInversePermutesImpl>; +using OptimizeInversePermutes = OptimizeForConnection<PermuteLayer, PermuteLayer, + OptimizeInversePermutesImpl<PermuteLayer>>; +using OptimizeInverseTransposes = OptimizeForConnection<TransposeLayer, TransposeLayer, + OptimizeInversePermutesImpl<TransposeLayer>>; } // namespace optimizations } // namespace armnn |