ArmNN
 21.02
Maximum.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 "../TfLiteParser.hpp"
9 
10 #include <string>
11 #include <iostream>
12 
13 BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
14 
15 struct MaximumFixture : public ParserFlatbuffersFixture
16 {
17  explicit MaximumFixture(const std::string & inputShape1,
18  const std::string & inputShape2,
19  const std::string & outputShape)
20  {
21  m_JsonString = R"(
22  {
23  "version": 3,
24  "operator_codes": [ { "builtin_code": "MAXIMUM" } ],
25  "subgraphs": [ {
26  "tensors": [
27  {
28  "shape": )" + inputShape1 + R"(,
29  "type": "FLOAT32",
30  "buffer": 0,
31  "name": "inputTensor1",
32  "quantization": {
33  "min": [ 0.0 ],
34  "max": [ 255.0 ],
35  "scale": [ 1.0 ],
36  "zero_point": [ 0 ],
37  }
38  },
39  {
40  "shape": )" + inputShape2 + R"(,
41  "type": "FLOAT32",
42  "buffer": 1,
43  "name": "inputTensor2",
44  "quantization": {
45  "min": [ 0.0 ],
46  "max": [ 255.0 ],
47  "scale": [ 1.0 ],
48  "zero_point": [ 0 ],
49  }
50  },
51  {
52  "shape": )" + outputShape + R"( ,
53  "type": "FLOAT32",
54  "buffer": 2,
55  "name": "outputTensor",
56  "quantization": {
57  "min": [ 0.0 ],
58  "max": [ 255.0 ],
59  "scale": [ 1.0 ],
60  "zero_point": [ 0 ],
61  }
62  }
63  ],
64  "inputs": [ 0, 1 ],
65  "outputs": [ 2 ],
66  "operators": [
67  {
68  "opcode_index": 0,
69  "inputs": [ 0, 1 ],
70  "outputs": [ 2 ],
71  "custom_options_format": "FLEXBUFFERS"
72  }
73  ],
74  } ],
75  "buffers" : [
76  { },
77  { }
78  ]
79  }
80  )";
81  Setup();
82  }
83 };
84 
85 
86 struct MaximumFixture4D4D : MaximumFixture
87 {
88  MaximumFixture4D4D() : MaximumFixture("[ 1, 2, 2, 3 ]",
89  "[ 1, 2, 2, 3 ]",
90  "[ 1, 2, 2, 3 ]") {}
91 };
92 
93 BOOST_FIXTURE_TEST_CASE(ParseMaximum4D4D, MaximumFixture4D4D)
94 {
95  RunTest<4, armnn::DataType::Float32>(
96  0,
97  {{"inputTensor1", { 0.0f, 1.0f, 2.0f,
98  3.0f, 4.0f, 5.0f,
99  6.0f, 7.0f, 8.0f,
100  9.0f, 10.0f, 11.0f }},
101  {"inputTensor2", { 5.0f, 1.0f, 3.0f,
102  4.0f, 5.5f, 1.0f,
103  2.0f, 17.0f, 18.0f,
104  19.0f, 1.0f, 3.0f }}},
105  {{"outputTensor", { 5.0f, 1.0f, 3.0f,
106  4.0f, 5.5f, 5.0f,
107  6.0f, 17.0f, 18.0f,
108  19.0f, 10.0f, 11.0f }}});
109 }
110 
111 struct MaximumBroadcastFixture4D4D : MaximumFixture
112 {
113  MaximumBroadcastFixture4D4D() : MaximumFixture("[ 1, 1, 2, 1 ]",
114  "[ 1, 2, 1, 3 ]",
115  "[ 1, 2, 2, 3 ]") {}
116 };
117 
118 BOOST_FIXTURE_TEST_CASE(ParseMaximumBroadcast4D4D, MaximumBroadcastFixture4D4D)
119 {
120  RunTest<4, armnn::DataType::Float32>(
121  0,
122  {{"inputTensor1", { 2.0f, 4.0f }},
123  {"inputTensor2", { 1.0f, 2.0f, 3.0f,
124  4.0f, 5.0f, 6.0f }}},
125  {{"outputTensor", { 2.0f, 2.0f, 3.0f,
126  4.0f, 4.0f, 4.0f,
127  4.0f, 5.0f, 6.0f,
128  4.0f, 5.0f, 6.0f }}});
129 }
130 
131 struct MaximumBroadcastFixture4D1D : MaximumFixture
132 {
133  MaximumBroadcastFixture4D1D() : MaximumFixture("[ 1, 2, 2, 3 ]",
134  "[ 1 ]",
135  "[ 1, 2, 2, 3 ]") {}
136 };
137 
138 BOOST_FIXTURE_TEST_CASE(ParseMaximumBroadcast4D1D, MaximumBroadcastFixture4D1D)
139 {
140  RunTest<4, armnn::DataType::Float32>(
141  0,
142  {{"inputTensor1", { 0.0f, 1.0f, 2.0f,
143  3.0f, 4.0f, 5.0f,
144  6.0f, 7.0f, 8.0f,
145  9.0f, 10.0f, 11.0f }},
146  {"inputTensor2", { 5.0f }}},
147  {{"outputTensor", { 5.0f, 5.0f, 5.0f,
148  5.0f, 5.0f, 5.0f,
149  6.0f, 7.0f, 8.0f,
150  9.0f, 10.0f, 11.0f }}});
151 }
152 
153 struct MaximumBroadcastFixture1D4D : MaximumFixture
154 {
155  MaximumBroadcastFixture1D4D() : MaximumFixture("[ 1 ]",
156  "[ 1, 2, 2, 3 ]",
157  "[ 1, 2, 2, 3 ]") {}
158 };
159 
160 BOOST_FIXTURE_TEST_CASE(ParseMaximumBroadcast1D4D, MaximumBroadcastFixture1D4D)
161 {
162  RunTest<4, armnn::DataType::Float32>(
163  0,
164  {{"inputTensor1", { 3.0f }},
165  {"inputTensor2", { 0.0f, 1.0f, 2.0f,
166  3.0f, 4.0f, 5.0f,
167  6.0f, 7.0f, 8.0f,
168  9.0f, 10.0f, 11.0f }}},
169  {{"outputTensor", { 3.0f, 3.0f, 3.0f,
170  3.0f, 4.0f, 5.0f,
171  6.0f, 7.0f, 8.0f,
172  9.0f, 10.0f, 11.0f }}});
173 }
174 
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
BOOST_FIXTURE_TEST_CASE(ParseMaximum4D4D, MaximumFixture4D4D)
Definition: Maximum.cpp:93
BOOST_AUTO_TEST_SUITE_END()