ArmNN
 20.02
DeserializeSpaceToBatchNd.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <boost/test/unit_test.hpp>
8 #include "../Deserializer.hpp"
9 
10 #include <string>
11 
12 BOOST_AUTO_TEST_SUITE(Deserializer)
13 
14 struct SpaceToBatchNdFixture : public ParserFlatbuffersSerializeFixture
15 {
16  explicit SpaceToBatchNdFixture(const std::string &inputShape,
17  const std::string &blockShape,
18  const std::string &padList,
19  const std::string &dataLayout,
20  const std::string &outputShape,
21  const std::string &dataType)
22  {
23  m_JsonString = R"(
24  {
25  inputIds: [0],
26  outputIds: [2],
27  layers: [
28  {
29  layer_type: "InputLayer",
30  layer: {
31  base: {
32  layerBindingId: 0,
33  base: {
34  index: 0,
35  layerName: "InputLayer",
36  layerType: "Input",
37  inputSlots: [{
38  index: 0,
39  connection: {sourceLayerIndex:0, outputSlotIndex:0 },
40  }],
41  outputSlots: [{
42  index: 0,
43  tensorInfo: {
44  dimensions: )" + inputShape + R"(,
45  dataType: )" + dataType + R"(
46  }
47  }]
48  }
49  }
50  }
51  },
52  {
53  layer_type: "SpaceToBatchNdLayer",
54  layer: {
55  base: {
56  index: 1,
57  layerName: "SpaceToBatchNdLayer",
58  layerType: "SpaceToBatchNd",
59  inputSlots: [{
60  index: 0,
61  connection: {sourceLayerIndex:0, outputSlotIndex:0 },
62  }],
63  outputSlots: [{
64  index: 0,
65  tensorInfo: {
66  dimensions: )" + outputShape + R"(,
67  dataType: )" + dataType + R"(
68  }
69  }]
70  },
71  descriptor: {
72  blockShape: )" + blockShape + R"(,
73  padList: )" + padList + R"(,
74  dataLayout: )" + dataLayout + R"(,
75  }
76  }
77  },
78  {
79  layer_type: "OutputLayer",
80  layer: {
81  base:{
82  layerBindingId: 2,
83  base: {
84  index: 2,
85  layerName: "OutputLayer",
86  layerType: "Output",
87  inputSlots: [{
88  index: 0,
89  connection: {sourceLayerIndex:1, outputSlotIndex:0 },
90  }],
91  outputSlots: [{
92  index: 0,
93  tensorInfo: {
94  dimensions: )" + outputShape + R"(,
95  dataType: )" + dataType + R"(
96  },
97  }],
98  }
99  }
100  },
101  }
102  ]
103  }
104  )";
105  SetupSingleInputSingleOutput("InputLayer", "OutputLayer");
106  }
107 };
108 
109 struct SimpleSpaceToBatchNdFixture : SpaceToBatchNdFixture
110 {
111  SimpleSpaceToBatchNdFixture() : SpaceToBatchNdFixture("[ 2, 1, 2, 4 ]",
112  "[ 2, 2 ]",
113  "[ 0, 0, 2, 0 ]",
114  "NCHW",
115  "[ 8, 1, 1, 3 ]",
116  "Float32") {}
117 };
118 
119 BOOST_FIXTURE_TEST_CASE(SimpleSpaceToBatchNdFloat32, SimpleSpaceToBatchNdFixture)
120 {
121  RunTest<4, armnn::DataType::Float32>(0,
122  {
123  1.0f, 2.0f, 3.0f, 4.0f,
124  5.0f, 6.0f, 7.0f, 8.0f,
125  9.0f, 10.0f, 11.0f, 12.0f,
126  13.0f, 14.0f, 15.0f, 16.0f
127  },
128  {
129  0.0f, 1.0f, 3.0f,
130  0.0f, 9.0f, 11.0f,
131  0.0f, 2.0f, 4.0f,
132  0.0f, 10.0f, 12.0f,
133  0.0f, 5.0f, 7.0f,
134  0.0f, 13.0f, 15.0f,
135  0.0f, 6.0f, 8.0f,
136  0.0f, 14.0f, 16.0f
137  });
138 }
139 
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
void SetupSingleInputSingleOutput(const std::string &inputName, const std::string &outputName)
BOOST_FIXTURE_TEST_CASE(SimpleSpaceToBatchNdFloat32, SimpleSpaceToBatchNdFixture)
BOOST_AUTO_TEST_SUITE_END()