From 57728788f65656e4fa08923d12bee0de34a72fc7 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Wed, 27 Feb 2019 10:53:27 +0000 Subject: IVGCVSW-2700 Serialize/de-serialize the Normalization layer Change-Id: Ib307ec6c28beb6c158d337678e67a2484c495a06 Signed-off-by: Nina Drozd --- .../test/DeserializeNormalization.cpp | 143 +++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 src/armnnDeserializer/test/DeserializeNormalization.cpp (limited to 'src/armnnDeserializer/test/DeserializeNormalization.cpp') diff --git a/src/armnnDeserializer/test/DeserializeNormalization.cpp b/src/armnnDeserializer/test/DeserializeNormalization.cpp new file mode 100644 index 0000000000..eb7e958c5b --- /dev/null +++ b/src/armnnDeserializer/test/DeserializeNormalization.cpp @@ -0,0 +1,143 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include +#include "ParserFlatbuffersSerializeFixture.hpp" +#include "../Deserializer.hpp" + +#include +#include + +BOOST_AUTO_TEST_SUITE(Deserializer) + +struct NormalizationFixture : public ParserFlatbuffersSerializeFixture +{ + explicit NormalizationFixture(const std::string &inputShape, + const std::string & outputShape, + const std::string &dataType, + const std::string &normAlgorithmChannel, + const std::string &normAlgorithmMethod, + 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: "NormalizationLayer", + layer : { + base: { + index:1, + layerName: "NormalizationLayer", + layerType: "Normalization", + inputSlots: [{ + index: 0, + connection: {sourceLayerIndex:0, outputSlotIndex:0 }, + }], + outputSlots: [{ + index: 0, + tensorInfo: { + dimensions: )" + outputShape + R"(, + dataType: )" + dataType + R"( + }, + }], + }, + descriptor: { + normChannelType: )" + normAlgorithmChannel + R"(, + normMethodType: )" + normAlgorithmMethod + R"(, + normSize: 3, + alpha: 1, + beta: 1, + k: 1, + dataLayout: )" + dataLayout + 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 FloatNhwcLocalBrightnessAcrossNormalizationFixture : NormalizationFixture +{ + FloatNhwcLocalBrightnessAcrossNormalizationFixture() : NormalizationFixture("[ 2, 2, 2, 1 ]", "[ 2, 2, 2, 1 ]", + "Float32", "0", "0", "NHWC") {} +}; + + +BOOST_FIXTURE_TEST_CASE(Float32NormalizationNhwcDataLayout, FloatNhwcLocalBrightnessAcrossNormalizationFixture) +{ + RunTest<4, armnn::DataType::Float32>(0, { 1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f }, + { 0.5f, 0.400000006f, 0.300000012f, 0.235294119f, + 0.192307696f, 0.16216217f, 0.140000001f, 0.123076923f }); +} + +struct FloatNchwLocalBrightnessWithinNormalizationFixture : NormalizationFixture +{ + FloatNchwLocalBrightnessWithinNormalizationFixture() : NormalizationFixture("[ 2, 1, 2, 2 ]", "[ 2, 1, 2, 2 ]", + "Float32", "1", "0", "NCHW") {} +}; + +BOOST_FIXTURE_TEST_CASE(Float32NormalizationNchwDataLayout, FloatNchwLocalBrightnessWithinNormalizationFixture) +{ + RunTest<4, armnn::DataType::Float32>(0, { 1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f }, + { 0.0322581f, 0.0645161f, 0.0967742f, 0.1290323f, + 0.0285714f, 0.0342857f, 0.04f, 0.0457143f }); +} + + +BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file -- cgit v1.2.1