1 // Generated from rnn.mod.py
2 // DO NOT EDIT
3 // clang-format off
4 #include "TestHarness.h"
5 using namespace test_helper; // NOLINT(google-build-using-namespace)
6
7 namespace generated_tests::rnn {
8
get_test_model()9 const TestModel& get_test_model() {
10 static TestModel model = {
11 .main = {
12 .operands = {{ // input
13 .type = TestOperandType::TENSOR_FLOAT32,
14 .dimensions = {2, 8},
15 .numberOfConsumers = 1,
16 .scale = 0.0f,
17 .zeroPoint = 0,
18 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
19 .channelQuant = {},
20 .isIgnored = false,
21 .data = TestBuffer::createFromVector<float>({0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f, 0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f})
22 }, { // weights
23 .type = TestOperandType::TENSOR_FLOAT32,
24 .dimensions = {16, 8},
25 .numberOfConsumers = 1,
26 .scale = 0.0f,
27 .zeroPoint = 0,
28 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
29 .channelQuant = {},
30 .isIgnored = false,
31 .data = TestBuffer::createFromVector<float>({0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f})
32 }, { // recurrent_weights
33 .type = TestOperandType::TENSOR_FLOAT32,
34 .dimensions = {16, 16},
35 .numberOfConsumers = 1,
36 .scale = 0.0f,
37 .zeroPoint = 0,
38 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
39 .channelQuant = {},
40 .isIgnored = false,
41 .data = TestBuffer::createFromVector<float>({0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f})
42 }, { // bias
43 .type = TestOperandType::TENSOR_FLOAT32,
44 .dimensions = {16},
45 .numberOfConsumers = 1,
46 .scale = 0.0f,
47 .zeroPoint = 0,
48 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
49 .channelQuant = {},
50 .isIgnored = false,
51 .data = TestBuffer::createFromVector<float>({0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f})
52 }, { // hidden_state_in
53 .type = TestOperandType::TENSOR_FLOAT32,
54 .dimensions = {2, 16},
55 .numberOfConsumers = 1,
56 .scale = 0.0f,
57 .zeroPoint = 0,
58 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
59 .channelQuant = {},
60 .isIgnored = false,
61 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f})
62 }, { // activation_param
63 .type = TestOperandType::INT32,
64 .dimensions = {},
65 .numberOfConsumers = 1,
66 .scale = 0.0f,
67 .zeroPoint = 0,
68 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
69 .channelQuant = {},
70 .isIgnored = false,
71 .data = TestBuffer::createFromVector<int32_t>({1})
72 }, { // hidden_state_out
73 .type = TestOperandType::TENSOR_FLOAT32,
74 .dimensions = {2, 16},
75 .numberOfConsumers = 0,
76 .scale = 0.0f,
77 .zeroPoint = 0,
78 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
79 .channelQuant = {},
80 .isIgnored = true,
81 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f})
82 }, { // output
83 .type = TestOperandType::TENSOR_FLOAT32,
84 .dimensions = {2, 16},
85 .numberOfConsumers = 0,
86 .scale = 0.0f,
87 .zeroPoint = 0,
88 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
89 .channelQuant = {},
90 .isIgnored = false,
91 .data = TestBuffer::createFromVector<float>({0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f, 0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f})
92 }},
93 .operations = {{
94 .type = TestOperationType::RNN,
95 .inputs = {0, 1, 2, 3, 4, 5},
96 .outputs = {6, 7}
97 }},
98 .inputIndexes = {0, 1, 2, 3, 4},
99 .outputIndexes = {6, 7}
100 },
101 .referenced = {},
102 .isRelaxed = false,
103 .expectedMultinomialDistributionTolerance = 0,
104 .expectFailure = false,
105 .minSupportedVersion = TestHalVersion::V1_0
106 };
107 return model;
108 }
109
110 const auto dummy_test_model = TestModelManager::get().add("rnn", get_test_model());
111
112 } // namespace generated_tests::rnn
113
114 namespace generated_tests::rnn {
115
get_test_model_all_inputs_as_internal()116 const TestModel& get_test_model_all_inputs_as_internal() {
117 static TestModel model = {
118 .main = {
119 .operands = {{ // input
120 .type = TestOperandType::TENSOR_FLOAT32,
121 .dimensions = {2, 8},
122 .numberOfConsumers = 1,
123 .scale = 0.0f,
124 .zeroPoint = 0,
125 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
126 .channelQuant = {},
127 .isIgnored = false,
128 .data = TestBuffer::createFromVector<float>({})
129 }, { // weights
130 .type = TestOperandType::TENSOR_FLOAT32,
131 .dimensions = {16, 8},
132 .numberOfConsumers = 1,
133 .scale = 0.0f,
134 .zeroPoint = 0,
135 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
136 .channelQuant = {},
137 .isIgnored = false,
138 .data = TestBuffer::createFromVector<float>({})
139 }, { // recurrent_weights
140 .type = TestOperandType::TENSOR_FLOAT32,
141 .dimensions = {16, 16},
142 .numberOfConsumers = 1,
143 .scale = 0.0f,
144 .zeroPoint = 0,
145 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
146 .channelQuant = {},
147 .isIgnored = false,
148 .data = TestBuffer::createFromVector<float>({})
149 }, { // bias
150 .type = TestOperandType::TENSOR_FLOAT32,
151 .dimensions = {16},
152 .numberOfConsumers = 1,
153 .scale = 0.0f,
154 .zeroPoint = 0,
155 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
156 .channelQuant = {},
157 .isIgnored = false,
158 .data = TestBuffer::createFromVector<float>({})
159 }, { // hidden_state_in
160 .type = TestOperandType::TENSOR_FLOAT32,
161 .dimensions = {2, 16},
162 .numberOfConsumers = 1,
163 .scale = 0.0f,
164 .zeroPoint = 0,
165 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
166 .channelQuant = {},
167 .isIgnored = false,
168 .data = TestBuffer::createFromVector<float>({})
169 }, { // activation_param
170 .type = TestOperandType::INT32,
171 .dimensions = {},
172 .numberOfConsumers = 1,
173 .scale = 0.0f,
174 .zeroPoint = 0,
175 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
176 .channelQuant = {},
177 .isIgnored = false,
178 .data = TestBuffer::createFromVector<int32_t>({1})
179 }, { // hidden_state_out
180 .type = TestOperandType::TENSOR_FLOAT32,
181 .dimensions = {2, 16},
182 .numberOfConsumers = 0,
183 .scale = 0.0f,
184 .zeroPoint = 0,
185 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
186 .channelQuant = {},
187 .isIgnored = true,
188 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f})
189 }, { // output
190 .type = TestOperandType::TENSOR_FLOAT32,
191 .dimensions = {2, 16},
192 .numberOfConsumers = 0,
193 .scale = 0.0f,
194 .zeroPoint = 0,
195 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
196 .channelQuant = {},
197 .isIgnored = false,
198 .data = TestBuffer::createFromVector<float>({0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f, 0.496726f, 0.0f, 0.965996f, 0.0f, 0.0584254f, 0.0f, 0.0f, 0.12315f, 0.0f, 0.0f, 0.612266f, 0.456601f, 0.0f, 0.52286f, 1.16099f, 0.0291232f})
199 }, { // input_new
200 .type = TestOperandType::TENSOR_FLOAT32,
201 .dimensions = {2, 8},
202 .numberOfConsumers = 1,
203 .scale = 0.0f,
204 .zeroPoint = 0,
205 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
206 .channelQuant = {},
207 .isIgnored = false,
208 .data = TestBuffer::createFromVector<float>({0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f, 0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f})
209 }, { // placeholder
210 .type = TestOperandType::TENSOR_FLOAT32,
211 .dimensions = {1},
212 .numberOfConsumers = 1,
213 .scale = 0.0f,
214 .zeroPoint = 0,
215 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
216 .channelQuant = {},
217 .isIgnored = false,
218 .data = TestBuffer::createFromVector<float>({0.0f})
219 }, { // param
220 .type = TestOperandType::INT32,
221 .dimensions = {},
222 .numberOfConsumers = 1,
223 .scale = 0.0f,
224 .zeroPoint = 0,
225 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
226 .channelQuant = {},
227 .isIgnored = false,
228 .data = TestBuffer::createFromVector<int32_t>({0})
229 }, { // weights_new
230 .type = TestOperandType::TENSOR_FLOAT32,
231 .dimensions = {16, 8},
232 .numberOfConsumers = 1,
233 .scale = 0.0f,
234 .zeroPoint = 0,
235 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
236 .channelQuant = {},
237 .isIgnored = false,
238 .data = TestBuffer::createFromVector<float>({0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f})
239 }, { // placeholder1
240 .type = TestOperandType::TENSOR_FLOAT32,
241 .dimensions = {1},
242 .numberOfConsumers = 1,
243 .scale = 0.0f,
244 .zeroPoint = 0,
245 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
246 .channelQuant = {},
247 .isIgnored = false,
248 .data = TestBuffer::createFromVector<float>({0.0f})
249 }, { // param1
250 .type = TestOperandType::INT32,
251 .dimensions = {},
252 .numberOfConsumers = 1,
253 .scale = 0.0f,
254 .zeroPoint = 0,
255 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
256 .channelQuant = {},
257 .isIgnored = false,
258 .data = TestBuffer::createFromVector<int32_t>({0})
259 }, { // recurrent_weights_new
260 .type = TestOperandType::TENSOR_FLOAT32,
261 .dimensions = {16, 16},
262 .numberOfConsumers = 1,
263 .scale = 0.0f,
264 .zeroPoint = 0,
265 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
266 .channelQuant = {},
267 .isIgnored = false,
268 .data = TestBuffer::createFromVector<float>({0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f})
269 }, { // placeholder2
270 .type = TestOperandType::TENSOR_FLOAT32,
271 .dimensions = {1},
272 .numberOfConsumers = 1,
273 .scale = 0.0f,
274 .zeroPoint = 0,
275 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
276 .channelQuant = {},
277 .isIgnored = false,
278 .data = TestBuffer::createFromVector<float>({0.0f})
279 }, { // param2
280 .type = TestOperandType::INT32,
281 .dimensions = {},
282 .numberOfConsumers = 1,
283 .scale = 0.0f,
284 .zeroPoint = 0,
285 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
286 .channelQuant = {},
287 .isIgnored = false,
288 .data = TestBuffer::createFromVector<int32_t>({0})
289 }, { // bias_new
290 .type = TestOperandType::TENSOR_FLOAT32,
291 .dimensions = {16},
292 .numberOfConsumers = 1,
293 .scale = 0.0f,
294 .zeroPoint = 0,
295 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
296 .channelQuant = {},
297 .isIgnored = false,
298 .data = TestBuffer::createFromVector<float>({0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f})
299 }, { // placeholder3
300 .type = TestOperandType::TENSOR_FLOAT32,
301 .dimensions = {1},
302 .numberOfConsumers = 1,
303 .scale = 0.0f,
304 .zeroPoint = 0,
305 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
306 .channelQuant = {},
307 .isIgnored = false,
308 .data = TestBuffer::createFromVector<float>({0.0f})
309 }, { // param3
310 .type = TestOperandType::INT32,
311 .dimensions = {},
312 .numberOfConsumers = 1,
313 .scale = 0.0f,
314 .zeroPoint = 0,
315 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
316 .channelQuant = {},
317 .isIgnored = false,
318 .data = TestBuffer::createFromVector<int32_t>({0})
319 }, { // hidden_state_in_new
320 .type = TestOperandType::TENSOR_FLOAT32,
321 .dimensions = {2, 16},
322 .numberOfConsumers = 1,
323 .scale = 0.0f,
324 .zeroPoint = 0,
325 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
326 .channelQuant = {},
327 .isIgnored = false,
328 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f})
329 }, { // placeholder4
330 .type = TestOperandType::TENSOR_FLOAT32,
331 .dimensions = {1},
332 .numberOfConsumers = 1,
333 .scale = 0.0f,
334 .zeroPoint = 0,
335 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
336 .channelQuant = {},
337 .isIgnored = false,
338 .data = TestBuffer::createFromVector<float>({0.0f})
339 }, { // param4
340 .type = TestOperandType::INT32,
341 .dimensions = {},
342 .numberOfConsumers = 1,
343 .scale = 0.0f,
344 .zeroPoint = 0,
345 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
346 .channelQuant = {},
347 .isIgnored = false,
348 .data = TestBuffer::createFromVector<int32_t>({0})
349 }},
350 .operations = {{
351 .type = TestOperationType::ADD,
352 .inputs = {8, 9, 10},
353 .outputs = {0}
354 }, {
355 .type = TestOperationType::ADD,
356 .inputs = {11, 12, 13},
357 .outputs = {1}
358 }, {
359 .type = TestOperationType::ADD,
360 .inputs = {14, 15, 16},
361 .outputs = {2}
362 }, {
363 .type = TestOperationType::ADD,
364 .inputs = {17, 18, 19},
365 .outputs = {3}
366 }, {
367 .type = TestOperationType::ADD,
368 .inputs = {20, 21, 22},
369 .outputs = {4}
370 }, {
371 .type = TestOperationType::RNN,
372 .inputs = {0, 1, 2, 3, 4, 5},
373 .outputs = {6, 7}
374 }},
375 .inputIndexes = {8, 11, 14, 17, 20},
376 .outputIndexes = {6, 7}
377 },
378 .referenced = {},
379 .isRelaxed = false,
380 .expectedMultinomialDistributionTolerance = 0,
381 .expectFailure = false,
382 .minSupportedVersion = TestHalVersion::V1_0
383 };
384 return model;
385 }
386
387 const auto dummy_test_model_all_inputs_as_internal = TestModelManager::get().add("rnn_all_inputs_as_internal", get_test_model_all_inputs_as_internal());
388
389 } // namespace generated_tests::rnn
390
391