diff options
author | Sang-Hoon Park <sang-hoon.park@arm.com> | 2020-02-18 11:27:35 +0000 |
---|---|---|
committer | Sang-Hoon Park <sang-hoon.park@arm.com> | 2020-02-24 13:29:57 +0000 |
commit | dd3f71b64072c44cec65a7a883d0c3a29659645c (patch) | |
tree | d48b0508811e88d47b4b95a1777742312b2ba4db /src/armnnUtils | |
parent | cf34f510b891b87b4c7be5edb30272b36cab7b51 (diff) | |
download | armnn-dd3f71b64072c44cec65a7a883d0c3a29659645c.tar.gz |
COMPMID-3060: Add TF Parser support for Transpose
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Change-Id: I9661787071554b38c5b0ab3c98431f3863b98520
Diffstat (limited to 'src/armnnUtils')
-rw-r--r-- | src/armnnUtils/PrototxtConversions.cpp | 14 | ||||
-rw-r--r-- | src/armnnUtils/PrototxtConversions.hpp | 8 | ||||
-rw-r--r-- | src/armnnUtils/test/PrototxtConversionsTest.cpp | 97 |
3 files changed, 119 insertions, 0 deletions
diff --git a/src/armnnUtils/PrototxtConversions.cpp b/src/armnnUtils/PrototxtConversions.cpp index 1a6c053355..cc86321a27 100644 --- a/src/armnnUtils/PrototxtConversions.cpp +++ b/src/armnnUtils/PrototxtConversions.cpp @@ -4,6 +4,7 @@ // #include "PrototxtConversions.hpp" +#include "armnn/Tensor.hpp" #include <boost/format.hpp> @@ -29,4 +30,17 @@ std::string ConvertInt32ToOctalString(int value) return returnString; } +/// Converts an TensorShape into Prototxt representation +std::string ConvertTensorShapeToString(const armnn::TensorShape& shape) +{ + std::stringstream ss; + for (unsigned int i = 0 ; i < shape.GetNumDimensions() ; i++) + { + ss << "dim {\n"; + ss << "size: " << std::to_string(shape[i]) << "\n"; + ss << "}\n"; + } + return ss.str(); + +} } // namespace armnnUtils diff --git a/src/armnnUtils/PrototxtConversions.hpp b/src/armnnUtils/PrototxtConversions.hpp index c90af9edff..fb066729fe 100644 --- a/src/armnnUtils/PrototxtConversions.hpp +++ b/src/armnnUtils/PrototxtConversions.hpp @@ -7,10 +7,18 @@ #include <string> +namespace armnn +{ +class TensorShape; +} // namespace armnn + namespace armnnUtils { /// Converts an int value into the Prototxt octal representation std::string ConvertInt32ToOctalString(int value); +/// Converts an TensorShape into Prototxt representation +std::string ConvertTensorShapeToString(const armnn::TensorShape& shape); + } // namespace armnnUtils diff --git a/src/armnnUtils/test/PrototxtConversionsTest.cpp b/src/armnnUtils/test/PrototxtConversionsTest.cpp index e06fbe0f2e..f263a52340 100644 --- a/src/armnnUtils/test/PrototxtConversionsTest.cpp +++ b/src/armnnUtils/test/PrototxtConversionsTest.cpp @@ -4,6 +4,7 @@ // #include <PrototxtConversions.hpp> +#include "armnn/Tensor.hpp" #include <boost/test/unit_test.hpp> @@ -38,4 +39,100 @@ BOOST_AUTO_TEST_CASE(ConvertInt32ToOctalStringTest) BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\000\\\\377")); } +BOOST_AUTO_TEST_CASE(ConvertTensorShapeToStringTest) +{ + using armnnUtils::ConvertTensorShapeToString; + using armnn::TensorShape; + + auto createAndConvert = [](std::initializer_list<unsigned int> dims) -> std::string + { + auto shape = TensorShape{dims}; + return ConvertTensorShapeToString(shape); + }; + + auto output_string = createAndConvert({5}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 5\n" + "}")); + + output_string = createAndConvert({4, 5}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 4\n" + "}\n" + "dim {\n" + "size: 5\n" + "}" + )); + + output_string = createAndConvert({3, 4, 5}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 3\n" + "}\n" + "dim {\n" + "size: 4\n" + "}\n" + "dim {\n" + "size: 5\n" + "}" + )); + + output_string = createAndConvert({2, 3, 4, 5}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 2\n" + "}\n" + "dim {\n" + "size: 3\n" + "}\n" + "dim {\n" + "size: 4\n" + "}\n" + "dim {\n" + "size: 5\n" + "}" + )); + + output_string = createAndConvert({1, 2, 3, 4, 5}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 1\n" + "}\n" + "dim {\n" + "size: 2\n" + "}\n" + "dim {\n" + "size: 3\n" + "}\n" + "dim {\n" + "size: 4\n" + "}\n" + "dim {\n" + "size: 5\n" + "}" + )); + + output_string = createAndConvert({0xffffffff, 0xffffffff}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 4294967295\n" + "}\n" + "dim {\n" + "size: 4294967295\n" + "}" + )); + + output_string = createAndConvert({1, 0}); + BOOST_ASSERT(output_string.compare( + "dim {\n" + "size: 1\n" + "}\n" + "dim {\n" + "size: 0\n" + "}" + )); +} + BOOST_AUTO_TEST_SUITE_END() |