From 48d709356269f4f4131d319f6638ab4f7b083931 Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Tue, 18 Feb 2020 15:18:27 +0000 Subject: IVGCVSW-2232 Pack/Stack operator support in Tensorflow Parser * Parser support and unit tests added for Stack opertor in TfParser Signed-off-by: Sadik Armagan Change-Id: I243b33fda2762180ef880458e760a54fde64f3d8 --- src/armnnTfParser/test/Stack.cpp | 174 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 src/armnnTfParser/test/Stack.cpp (limited to 'src/armnnTfParser/test') diff --git a/src/armnnTfParser/test/Stack.cpp b/src/armnnTfParser/test/Stack.cpp new file mode 100644 index 0000000000..b28991713d --- /dev/null +++ b/src/armnnTfParser/test/Stack.cpp @@ -0,0 +1,174 @@ +// +// Copyright © 2020 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "armnnTfParser/ITfParser.hpp" +#include "ParserPrototxtFixture.hpp" + +#include + +#include + +BOOST_AUTO_TEST_SUITE(TensorflowParser) + +struct StackFixture : public armnnUtils::ParserPrototxtFixture +{ + explicit StackFixture(const armnn::TensorShape& inputShape0, + const armnn::TensorShape& inputShape1, + int axis = 0) + { + m_Prototext = R"( + node { + name: "input0" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + } + } + } + } + node { + name: "input1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + } + } + } + } + node { + name: "output" + op: "Stack" + input: "input0" + input: "input1" + attr { + key: "axis" + value { + i: )"; + m_Prototext += std::to_string(axis); + m_Prototext += R"( + } + } + })"; + + Setup({{"input0", inputShape0 }, + {"input1", inputShape1 }}, {"output"}); + } +}; + +struct Stack3DFixture : StackFixture +{ + Stack3DFixture() : StackFixture({ 3, 2, 3 }, { 3, 2, 3 }, 3 ) {} +}; + +BOOST_FIXTURE_TEST_CASE(Stack3D, Stack3DFixture) +{ + + RunTest<4>({ { "input0", { 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12, + + 13, 14, 15, + 16, 17, 18 } }, + { "input1", { 19, 20, 21, + 22, 23, 24, + + 25, 26, 27, + 28, 29, 30, + + 31, 32, 33, + 34, 35, 36 } } }, + { { "output", { 1, 19, + 2, 20, + 3, 21, + + 4, 22, + 5, 23, + 6, 24, + + 7, 25, + 8, 26, + 9, 27, + + 10, 28, + 11, 29, + 12, 30, + + 13, 31, + 14, 32, + 15, 33, + + 16, 34, + 17, 35, + 18, 36 } } }); +} + +struct Stack3DNegativeAxisFixture : StackFixture +{ + Stack3DNegativeAxisFixture() : StackFixture({ 3, 2, 3 }, { 3, 2, 3 }, -1 ) {} +}; + +BOOST_FIXTURE_TEST_CASE(Stack3DNegativeAxis, Stack3DNegativeAxisFixture) +{ + + RunTest<4>({ { "input0", { 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12, + + 13, 14, 15, + 16, 17, 18 } }, + { "input1", { 19, 20, 21, + 22, 23, 24, + + 25, 26, 27, + 28, 29, 30, + + 31, 32, 33, + 34, 35, 36 } } }, + { { "output", { 1, 19, + 2, 20, + 3, 21, + + 4, 22, + 5, 23, + 6, 24, + + 7, 25, + 8, 26, + 9, 27, + + 10, 28, + 11, 29, + 12, 30, + + 13, 31, + 14, 32, + 15, 33, + + 16, 34, + 17, 35, + 18, 36 } } }); +} + +BOOST_AUTO_TEST_SUITE_END() -- cgit v1.2.1