From 1f140f7226c4ed7bc5cbaf2ce09654eee452f4bf Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Tue, 6 Apr 2021 12:25:55 +0100 Subject: MLCE-328 Serializer/Deserializer does not support Signed64 * Added support for Signed64 to flatbuffer's schema & updated source tree * Added support for Signed64 to TFLite Delegate * Added support for Signed64 to Serializer * Added support for Signed64 to Deserializer * Added unit test for ArgMinMax to Deserializer * Deprecated m_Output_Type from the ArgMinMaxDescriptor: the output type is solely determined by the DataType of the output Tensor * Fixed issue where RefArgMinMaxWorkload could output data using the wrong DataType * Added Signed64 to RefLayerSupport::IsArgMinMaxSupported as a supported type Signed-off-by: Mike Kelly Signed-off-by: Matthew Sloyan Change-Id: Ib622c052a1f8aa3e658262f8bde5a6881a8cbe10 --- .../test/DeserializeArgMinMax.cpp | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 src/armnnDeserializer/test/DeserializeArgMinMax.cpp (limited to 'src/armnnDeserializer/test/DeserializeArgMinMax.cpp') diff --git a/src/armnnDeserializer/test/DeserializeArgMinMax.cpp b/src/armnnDeserializer/test/DeserializeArgMinMax.cpp new file mode 100644 index 0000000000..6358b538dc --- /dev/null +++ b/src/armnnDeserializer/test/DeserializeArgMinMax.cpp @@ -0,0 +1,134 @@ +// +// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include +#include "ParserFlatbuffersSerializeFixture.hpp" +#include "../Deserializer.hpp" + +#include +#include + +BOOST_AUTO_TEST_SUITE(DeserializeParser) + +struct ArgMinMaxFixture : public ParserFlatbuffersSerializeFixture +{ + explicit ArgMinMaxFixture(const std::string& inputShape, + const std::string& outputShape, + const std::string& axis, + const std::string& argMinMaxFunction) + { + m_JsonString = R"( + { + layers: [ + { + layer_type: "InputLayer", + layer: { + base: { + base: { + layerName: "InputLayer", + layerType: "Input", + inputSlots: [ + + ], + outputSlots: [ + { + tensorInfo: { + dimensions: )" + inputShape + R"(, + dataType: "Float32", + quantizationScale: 0.0 + } + } + ] + } + } + } + }, + { + layer_type: "ArgMinMaxLayer", + layer: { + base: { + index: 1, + layerName: "ArgMinMaxLayer", + layerType: "ArgMinMax", + inputSlots: [ + { + connection: { + sourceLayerIndex: 0, + outputSlotIndex: 0 + } + } + ], + outputSlots: [ + { + tensorInfo: { + dimensions: )" + outputShape + R"(, + dataType: "Signed64", + quantizationScale: 0.0 + } + } + ] + }, + descriptor: { + axis: )" + axis + R"(, + argMinMaxFunction: )" + argMinMaxFunction + R"( + } + } + }, + { + layer_type: "OutputLayer", + layer: { + base: { + base: { + index: 2, + layerName: "OutputLayer", + layerType: "Output", + inputSlots: [ + { + connection: { + sourceLayerIndex: 1, + outputSlotIndex: 0 + } + } + ], + outputSlots: [ + + ] + } + } + } + } + ], + inputIds: [ + 0 + ], + outputIds: [ + 0 + ], + featureVersions: { + bindingIdsScheme: 1 + } + } + )"; + Setup(); + } +}; + +struct SimpleArgMinMaxFixture : public ArgMinMaxFixture +{ + SimpleArgMinMaxFixture() : ArgMinMaxFixture("[ 1, 1, 1, 5 ]", + "[ 1, 1, 1 ]", + "-1", + "Max") {} +}; + +BOOST_FIXTURE_TEST_CASE(ArgMinMax, SimpleArgMinMaxFixture) +{ + RunTest<3, armnn::DataType::Float32, armnn::DataType::Signed64>( + 0, + {{"InputLayer", { 6.0f, 2.0f, 8.0f, 10.0f, 9.0f}}}, + {{"OutputLayer",{ 3l }}}); +} + +BOOST_AUTO_TEST_SUITE_END() -- cgit v1.2.1