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
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 55bf51a..50a7df6 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -910,13 +910,18 @@
// Perform optimisation passes
using namespace optimizations;
Optimizer::Pass(optGraph, MakeOptimizations(SquashEqualPermuteSiblings(),
+ SquashEqualTransposeSiblings(),
SquashEqualReshapeSiblings(),
OptimizeInversePermutes(),
+ OptimizeInverseTransposes(),
MovePermuteUp(),
+ MoveTransposeUp(),
PermuteAsReshape(),
+ TransposeAsReshape(),
OptimizeConsecutiveReshapes(),
FoldPadIntoConvolution2d(),
- PermuteAndBatchToSpaceAsDepthToSpace()));
+ PermuteAndBatchToSpaceAsDepthToSpace(),
+ TransposeAndBatchToSpaceAsDepthToSpace()));
// Infer the tensor infos for all output slots. Throws an exception on failure
optGraph.InferTensorInfos();