From fd3ba5a2f3630dc34094912b1a2c057f790f3092 Mon Sep 17 00:00:00 2001 From: Samuel Yap Date: Wed, 24 Aug 2022 17:04:34 +0100 Subject: IVGCVSW-6497: BatchMatMul TfLite Parser * Added armnnTfLiteParser for BatchMatMul * Added unit testing for parser * Updated CMakeLists Signed-off-by: Samuel Yap Change-Id: If6842aaf7cf08f688093b714e2ecea6e8cd87161 --- src/armnnTfLiteParser/test/BatchMatMul.cpp | 114 +++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 src/armnnTfLiteParser/test/BatchMatMul.cpp (limited to 'src/armnnTfLiteParser/test') diff --git a/src/armnnTfLiteParser/test/BatchMatMul.cpp b/src/armnnTfLiteParser/test/BatchMatMul.cpp new file mode 100644 index 0000000000..f4cdd67fb9 --- /dev/null +++ b/src/armnnTfLiteParser/test/BatchMatMul.cpp @@ -0,0 +1,114 @@ +// +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "ParserFlatbuffersFixture.hpp" + +TEST_SUITE("TensorflowLiteParser_BatchMatMul") +{ +struct BatchMatMulFixture : public ParserFlatbuffersFixture +{ + explicit BatchMatMulFixture(const std::string &inputXShape, + const std::string &inputYShape, + const std::string &outputShape, + const std::string &adjX, + const std::string &adjY) + { + m_JsonString = R"( + { + "version": 3, + "operator_codes": [ { "builtin_code": "BATCH_MATMUL" } ], + "subgraphs": [ + { + "tensors": [ + { + "shape": )" + inputXShape + R"(, + "type": "FLOAT32", + "buffer": 0, + "name": "inputXTensor", + "quantization": { + "min": [ 0.0 ], + "max": [ 255.0 ], + "scale": [ 1.0 ], + "zero_point": [ 0 ], + } + }, + { + "shape": )" + inputYShape + R"(, + "type": "FLOAT32", + "buffer": 1, + "name": "inputYTensor", + "quantization": { + "min": [ 0.0 ], + "max": [ 255.0 ], + "scale": [ 1.0 ], + "zero_point": [ 0 ], + } + }, + { + "shape": )" + outputShape + R"(, + "type": "FLOAT32", + "buffer": 2, + "name": "outputTensor", + "quantization": { + "min": [ 0.0 ], + "max": [ 255.0 ], + "scale": [ 1.0 ], + "zero_point": [ 0 ], + } + } + ], + "inputs": [ 0, 1 ], + "outputs": [ 2 ], + "operators": [ + { + "opcode_index": 0, + "inputs": [ 0 , 1 ], + "outputs": [ 2 ], + "builtin_options_type": "BatchMatMulOptions", + "builtin_options": { + adj_x: )" + adjX + R"(, + adj_y: )" + adjY + R"(, + "asymmetric_quantize_inputs": false + }, + "custom_options_format": "FLEXBUFFERS" + } + ] + } + ], + "buffers": [{},{}] + } + )"; + Setup(); + } +}; + +struct BatchMatMulParamsFixture : BatchMatMulFixture +{ + BatchMatMulParamsFixture() + : BatchMatMulFixture("[ 1, 3, 3 ]", + "[ 1, 3, 3 ]", + "[ 1, 3, 3 ]", + "false", + "true") + {} +}; + +TEST_CASE_FIXTURE(BatchMatMulParamsFixture, "ParseBatchMatMulParams") +{ + RunTest<3, armnn::DataType::Float32>( + 0, + {{"inputXTensor", {2.0f, 3.0f, 5.0f, + 8.0f, 13.0f, 21.0f, + 34.0f, 55.0f, 89.0f}}, + {"inputYTensor", {0.0f, 1.0f, 1.0f, + 1.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 0.0f}}}, + {{"outputTensor", {6.0f, 4.0f, 0.0f, + 26.0f, 16.0f, 0.0f, + 110.0f, 68.0f, 0.0f}}} + ); +} + +} \ No newline at end of file -- cgit v1.2.1