aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/optimizations/OptimizeInversePermutes.hpp
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2020-03-03 12:39:09 +0000
committermike.kelly <mike.kelly@arm.com>2020-03-03 15:05:30 +0000
commit490b7becb8029ead26423b0d62e631a929e55d6c (patch)
tree31148ace54164f62927062b662b2526f22a02e95 /src/armnn/optimizations/OptimizeInversePermutes.hpp
parent4a9e24bfc51eec7e593470091fb7e6e435ae3991 (diff)
downloadarmnn-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.hpp10
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