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/test/optimizations/OptimizeInversePermutesTests.cpp | |
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/test/optimizations/OptimizeInversePermutesTests.cpp')
-rw-r--r-- | src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp b/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp index dcf955956d..21f791c5ff 100644 --- a/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp +++ b/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp @@ -39,4 +39,31 @@ BOOST_AUTO_TEST_CASE(OptimizeInversePermutesTest) &IsLayerOfType<armnn::OutputLayer>)); } +BOOST_AUTO_TEST_CASE(OptimizeInverseTransposesTest) +{ + armnn::Graph graph; + + auto output = graph.AddLayer<armnn::OutputLayer>(0, "output"); + + graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input"); + + // Inserts two permutes, one the inverse of the other. + graph.InsertNewLayer<armnn::TransposeLayer>(output->GetInputSlot(0), + armnn::TransposeDescriptor({ 0, 3, 1, 2 }), + "transpose0312"); + graph.InsertNewLayer<armnn::TransposeLayer>(output->GetInputSlot(0), + armnn::TransposeDescriptor({ 0, 2, 3, 1 }), + "transpose0231"); + + BOOST_TEST(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::TransposeLayer>, &IsLayerOfType<armnn::TransposeLayer>, + &IsLayerOfType<armnn::OutputLayer>)); + + armnn::Optimizer::Pass(graph, armnn::MakeOptimizations(OptimizeInverseTransposes())); + + // The permutes are removed. + BOOST_TEST(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::OutputLayer>)); +} + BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file |