aboutsummaryrefslogtreecommitdiff
path: root/src/armnnDeserializer
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2019-10-09 10:36:34 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-10-10 07:52:18 +0000
commit92bbcaed655d1dfe696f12f264599589b8ada602 (patch)
tree18c7debb0d1799c58ed8bc450c57bf3ee23d2f01 /src/armnnDeserializer
parentd0613b56cea7eba0604e0548bddffd773a4eb554 (diff)
downloadarmnn-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/armnnDeserializer')
-rw-r--r--src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp155
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()