diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-10-09 10:36:34 +0100 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-10-10 07:52:18 +0000 |
commit | 92bbcaed655d1dfe696f12f264599589b8ada602 (patch) | |
tree | 18c7debb0d1799c58ed8bc450c57bf3ee23d2f01 /src | |
parent | d0613b56cea7eba0604e0548bddffd773a4eb554 (diff) | |
download | armnn-92bbcaed655d1dfe696f12f264599589b8ada602.tar.gz |
IVGCVSW-3943 Add deserialization test for INSTANCE_NORMALIZATION
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I9f3ab44d0d6644e4bf2958c983d2b5410ba13aec
Diffstat (limited to 'src')
-rw-r--r-- | src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp b/src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp new file mode 100644 index 0000000000..4873fd1d2f --- /dev/null +++ b/src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp @@ -0,0 +1,155 @@ +// +// Copyright © 2019 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "ParserFlatbuffersSerializeFixture.hpp" +#include "../Deserializer.hpp" + +#include <string> + +#include <boost/test/unit_test.hpp> + +BOOST_AUTO_TEST_SUITE(Deserializer) + +struct InstanceNormalizationFixture : public ParserFlatbuffersSerializeFixture +{ + explicit InstanceNormalizationFixture(const std::string &inputShape, + const std::string &outputShape, + const std::string &gamma, + const std::string &beta, + const std::string &epsilon, + const std::string &dataType, + const std::string &dataLayout) + { + m_JsonString = R"( + { + inputIds: [0], + outputIds: [2], + layers: [ + { + layer_type: "InputLayer", + layer: { + base: { + layerBindingId: 0, + base: { + index: 0, + layerName: "InputLayer", + layerType: "Input", + inputSlots: [{ + index: 0, + connection: {sourceLayerIndex:0, outputSlotIndex:0 }, + }], + outputSlots: [{ + index: 0, + tensorInfo: { + dimensions: )" + inputShape + R"(, + dataType: ")" + dataType + R"(", + quantizationScale: 0.5, + quantizationOffset: 0 + }, + }] + }, + } + }, + }, + { + layer_type: "InstanceNormalizationLayer", + layer : { + base: { + index:1, + layerName: "InstanceNormalizationLayer", + layerType: "InstanceNormalization", + inputSlots: [{ + index: 0, + connection: {sourceLayerIndex:0, outputSlotIndex:0 }, + }], + outputSlots: [{ + index: 0, + tensorInfo: { + dimensions: )" + outputShape + R"(, + dataType: ")" + dataType + R"(" + }, + }], + }, + descriptor: { + dataLayout: ")" + dataLayout + R"(", + gamma: ")" + gamma + R"(", + beta: ")" + beta + R"(", + eps: )" + epsilon + R"( + }, + }, + }, + { + layer_type: "OutputLayer", + layer: { + base:{ + layerBindingId: 0, + base: { + index: 2, + layerName: "OutputLayer", + layerType: "Output", + inputSlots: [{ + index: 0, + connection: {sourceLayerIndex:1, outputSlotIndex:0 }, + }], + outputSlots: [ { + index: 0, + tensorInfo: { + dimensions: )" + outputShape + R"(, + dataType: ")" + dataType + R"(" + }, + }], + } + }}, + }] + } +)"; + SetupSingleInputSingleOutput("InputLayer", "OutputLayer"); + } +}; + +struct InstanceNormalizationFloat32Fixture : InstanceNormalizationFixture +{ + InstanceNormalizationFloat32Fixture():InstanceNormalizationFixture("[ 2, 2, 2, 2 ]", + "[ 2, 2, 2, 2 ]", + "1.0", + "0.0", + "0.0001", + "Float32", + "NHWC") {} +}; + +BOOST_FIXTURE_TEST_CASE(InstanceNormalizationFloat32, InstanceNormalizationFloat32Fixture) +{ + RunTest<4, armnn::DataType::Float32>( + 0, + { + 0.f, 1.f, + 0.f, 2.f, + + 0.f, 2.f, + 0.f, 4.f, + + 1.f, -1.f, + -1.f, 2.f, + + -1.f, -2.f, + 1.f, 4.f + }, + { + 0.0000000f, -1.1470304f, + 0.0000000f, -0.2294061f, + + 0.0000000f, -0.2294061f, + 0.0000000f, 1.6058424f, + + 0.9999501f, -0.7337929f, + -0.9999501f, 0.5241377f, + + -0.9999501f, -1.1531031f, + 0.9999501f, 1.3627582f + }); +} + +BOOST_AUTO_TEST_SUITE_END() |