1 // Generated from lstm2.mod.py
2 // DO NOT EDIT
3 // clang-format off
4 #include "TestHarness.h"
5 using namespace test_helper;
6
7 namespace generated_tests::lstm2 {
8
get_test_model()9 const TestModel& get_test_model() {
10 static TestModel model = {
11 .expectFailure = false,
12 .expectedMultinomialDistributionTolerance = 0,
13 .isRelaxed = false,
14 .main = {
15 .inputIndexes = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
16 .operands = {{ // input
17 .channelQuant = {},
18 .data = TestBuffer::createFromVector<float>({2.0f, 3.0f}),
19 .dimensions = {1, 2},
20 .isIgnored = false,
21 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
22 .numberOfConsumers = 1,
23 .scale = 0.0f,
24 .type = TestOperandType::TENSOR_FLOAT32,
25 .zeroPoint = 0
26 }, { // input_to_input_weights
27 .channelQuant = {},
28 .data = TestBuffer::createFromVector<float>({}),
29 .dimensions = {4, 2},
30 .isIgnored = false,
31 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
32 .numberOfConsumers = 1,
33 .scale = 0.0f,
34 .type = TestOperandType::TENSOR_FLOAT32,
35 .zeroPoint = 0
36 }, { // input_to_forget_weights
37 .channelQuant = {},
38 .data = TestBuffer::createFromVector<float>({-0.55291498f, -0.42866567f, 0.13056988f, -0.3633365f, -0.22755712f, 0.28253698f, 0.24407166f, 0.33826375f}),
39 .dimensions = {4, 2},
40 .isIgnored = false,
41 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
42 .numberOfConsumers = 1,
43 .scale = 0.0f,
44 .type = TestOperandType::TENSOR_FLOAT32,
45 .zeroPoint = 0
46 }, { // input_to_cell_weights
47 .channelQuant = {},
48 .data = TestBuffer::createFromVector<float>({-0.49770179f, -0.27711356f, -0.09624726f, 0.05100781f, 0.04717243f, 0.48944736f, -0.38535351f, -0.17212132f}),
49 .dimensions = {4, 2},
50 .isIgnored = false,
51 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
52 .numberOfConsumers = 1,
53 .scale = 0.0f,
54 .type = TestOperandType::TENSOR_FLOAT32,
55 .zeroPoint = 0
56 }, { // input_to_output_weights
57 .channelQuant = {},
58 .data = TestBuffer::createFromVector<float>({0.10725588f, -0.02335852f, -0.55932593f, -0.09426838f, -0.44257352f, 0.54939759f, 0.01533556f, 0.42751634f}),
59 .dimensions = {4, 2},
60 .isIgnored = false,
61 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
62 .numberOfConsumers = 1,
63 .scale = 0.0f,
64 .type = TestOperandType::TENSOR_FLOAT32,
65 .zeroPoint = 0
66 }, { // recurrent_to_intput_weights
67 .channelQuant = {},
68 .data = TestBuffer::createFromVector<float>({}),
69 .dimensions = {4, 4},
70 .isIgnored = false,
71 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
72 .numberOfConsumers = 1,
73 .scale = 0.0f,
74 .type = TestOperandType::TENSOR_FLOAT32,
75 .zeroPoint = 0
76 }, { // recurrent_to_forget_weights
77 .channelQuant = {},
78 .data = TestBuffer::createFromVector<float>({-0.13832897f, -0.0515101f, -0.2359007f, -0.16661474f, -0.14340827f, 0.36986142f, 0.23414481f, 0.55899f, 0.10798943f, -0.41174671f, 0.17751795f, -0.34484994f, -0.35874045f, -0.11352962f, 0.27268326f, 0.54058349f}),
79 .dimensions = {4, 4},
80 .isIgnored = false,
81 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
82 .numberOfConsumers = 1,
83 .scale = 0.0f,
84 .type = TestOperandType::TENSOR_FLOAT32,
85 .zeroPoint = 0
86 }, { // recurrent_to_cell_weights
87 .channelQuant = {},
88 .data = TestBuffer::createFromVector<float>({0.54066205f, -0.32668582f, -0.43562764f, -0.56094903f, 0.42957711f, 0.01841056f, -0.32764608f, -0.33027974f, -0.10826075f, 0.20675004f, 0.19069612f, -0.03026325f, -0.54532051f, 0.33003211f, 0.44901288f, 0.21193194f}),
89 .dimensions = {4, 4},
90 .isIgnored = false,
91 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
92 .numberOfConsumers = 1,
93 .scale = 0.0f,
94 .type = TestOperandType::TENSOR_FLOAT32,
95 .zeroPoint = 0
96 }, { // recurrent_to_output_weights
97 .channelQuant = {},
98 .data = TestBuffer::createFromVector<float>({0.41613156f, 0.42610586f, -0.16495961f, -0.5663873f, 0.30579174f, -0.05115908f, -0.33941799f, 0.23364776f, 0.11178309f, 0.09481031f, -0.26424935f, 0.46261835f, 0.50248802f, 0.26114327f, -0.43736315f, 0.33149987f}),
99 .dimensions = {4, 4},
100 .isIgnored = false,
101 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
102 .numberOfConsumers = 1,
103 .scale = 0.0f,
104 .type = TestOperandType::TENSOR_FLOAT32,
105 .zeroPoint = 0
106 }, { // cell_to_input_weights
107 .channelQuant = {},
108 .data = TestBuffer::createFromVector<float>({}),
109 .dimensions = {0},
110 .isIgnored = false,
111 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
112 .numberOfConsumers = 1,
113 .scale = 0.0f,
114 .type = TestOperandType::TENSOR_FLOAT32,
115 .zeroPoint = 0
116 }, { // cell_to_forget_weights
117 .channelQuant = {},
118 .data = TestBuffer::createFromVector<float>({0.47485286f, -0.51955009f, -0.24458408f, 0.31544167f}),
119 .dimensions = {4},
120 .isIgnored = false,
121 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
122 .numberOfConsumers = 1,
123 .scale = 0.0f,
124 .type = TestOperandType::TENSOR_FLOAT32,
125 .zeroPoint = 0
126 }, { // cell_to_output_weights
127 .channelQuant = {},
128 .data = TestBuffer::createFromVector<float>({-0.17135078f, 0.82760304f, 0.85573703f, -0.77109635f}),
129 .dimensions = {4},
130 .isIgnored = false,
131 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
132 .numberOfConsumers = 1,
133 .scale = 0.0f,
134 .type = TestOperandType::TENSOR_FLOAT32,
135 .zeroPoint = 0
136 }, { // input_gate_bias
137 .channelQuant = {},
138 .data = TestBuffer::createFromVector<float>({}),
139 .dimensions = {4},
140 .isIgnored = false,
141 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
142 .numberOfConsumers = 1,
143 .scale = 0.0f,
144 .type = TestOperandType::TENSOR_FLOAT32,
145 .zeroPoint = 0
146 }, { // forget_gate_bias
147 .channelQuant = {},
148 .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 1.0f, 1.0f}),
149 .dimensions = {4},
150 .isIgnored = false,
151 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
152 .numberOfConsumers = 1,
153 .scale = 0.0f,
154 .type = TestOperandType::TENSOR_FLOAT32,
155 .zeroPoint = 0
156 }, { // cell_gate_bias
157 .channelQuant = {},
158 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
159 .dimensions = {4},
160 .isIgnored = false,
161 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
162 .numberOfConsumers = 1,
163 .scale = 0.0f,
164 .type = TestOperandType::TENSOR_FLOAT32,
165 .zeroPoint = 0
166 }, { // output_gate_bias
167 .channelQuant = {},
168 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
169 .dimensions = {4},
170 .isIgnored = false,
171 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
172 .numberOfConsumers = 1,
173 .scale = 0.0f,
174 .type = TestOperandType::TENSOR_FLOAT32,
175 .zeroPoint = 0
176 }, { // projection_weights
177 .channelQuant = {},
178 .data = TestBuffer::createFromVector<float>({}),
179 .dimensions = {0, 0},
180 .isIgnored = false,
181 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
182 .numberOfConsumers = 1,
183 .scale = 0.0f,
184 .type = TestOperandType::TENSOR_FLOAT32,
185 .zeroPoint = 0
186 }, { // projection_bias
187 .channelQuant = {},
188 .data = TestBuffer::createFromVector<float>({}),
189 .dimensions = {0},
190 .isIgnored = false,
191 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
192 .numberOfConsumers = 1,
193 .scale = 0.0f,
194 .type = TestOperandType::TENSOR_FLOAT32,
195 .zeroPoint = 0
196 }, { // output_state_in
197 .channelQuant = {},
198 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
199 .dimensions = {1, 4},
200 .isIgnored = false,
201 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
202 .numberOfConsumers = 1,
203 .scale = 0.0f,
204 .type = TestOperandType::TENSOR_FLOAT32,
205 .zeroPoint = 0
206 }, { // cell_state_in
207 .channelQuant = {},
208 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
209 .dimensions = {1, 4},
210 .isIgnored = false,
211 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
212 .numberOfConsumers = 1,
213 .scale = 0.0f,
214 .type = TestOperandType::TENSOR_FLOAT32,
215 .zeroPoint = 0
216 }, { // activation_param
217 .channelQuant = {},
218 .data = TestBuffer::createFromVector<int32_t>({4}),
219 .dimensions = {},
220 .isIgnored = false,
221 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
222 .numberOfConsumers = 1,
223 .scale = 0.0f,
224 .type = TestOperandType::INT32,
225 .zeroPoint = 0
226 }, { // cell_clip_param
227 .channelQuant = {},
228 .data = TestBuffer::createFromVector<float>({0.0f}),
229 .dimensions = {},
230 .isIgnored = false,
231 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
232 .numberOfConsumers = 1,
233 .scale = 0.0f,
234 .type = TestOperandType::FLOAT32,
235 .zeroPoint = 0
236 }, { // proj_clip_param
237 .channelQuant = {},
238 .data = TestBuffer::createFromVector<float>({0.0f}),
239 .dimensions = {},
240 .isIgnored = false,
241 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
242 .numberOfConsumers = 1,
243 .scale = 0.0f,
244 .type = TestOperandType::FLOAT32,
245 .zeroPoint = 0
246 }, { // scratch_buffer
247 .channelQuant = {},
248 .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}),
249 .dimensions = {1, 12},
250 .isIgnored = true,
251 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
252 .numberOfConsumers = 0,
253 .scale = 0.0f,
254 .type = TestOperandType::TENSOR_FLOAT32,
255 .zeroPoint = 0
256 }, { // output_state_out
257 .channelQuant = {},
258 .data = TestBuffer::createFromVector<float>({-0.364445f, -0.00352185f, 0.128866f, -0.0516365f}),
259 .dimensions = {1, 4},
260 .isIgnored = false,
261 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
262 .numberOfConsumers = 0,
263 .scale = 0.0f,
264 .type = TestOperandType::TENSOR_FLOAT32,
265 .zeroPoint = 0
266 }, { // cell_state_out
267 .channelQuant = {},
268 .data = TestBuffer::createFromVector<float>({-0.760444f, -0.0180416f, 0.182264f, -0.0649371f}),
269 .dimensions = {1, 4},
270 .isIgnored = false,
271 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
272 .numberOfConsumers = 0,
273 .scale = 0.0f,
274 .type = TestOperandType::TENSOR_FLOAT32,
275 .zeroPoint = 0
276 }, { // output
277 .channelQuant = {},
278 .data = TestBuffer::createFromVector<float>({-0.36444446f, -0.00352185f, 0.12886585f, -0.05163646f}),
279 .dimensions = {1, 4},
280 .isIgnored = false,
281 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
282 .numberOfConsumers = 0,
283 .scale = 0.0f,
284 .type = TestOperandType::TENSOR_FLOAT32,
285 .zeroPoint = 0
286 }},
287 .operations = {{
288 .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22},
289 .outputs = {23, 24, 25, 26},
290 .type = TestOperationType::LSTM
291 }},
292 .outputIndexes = {23, 24, 25, 26}
293 },
294 .minSupportedVersion = TestHalVersion::V1_0,
295 .referenced = {}
296 };
297 return model;
298 }
299
300 const auto dummy_test_model = TestModelManager::get().add("lstm2", get_test_model());
301
302 } // namespace generated_tests::lstm2
303
304 namespace generated_tests::lstm2 {
305
get_test_model_all_inputs_as_internal()306 const TestModel& get_test_model_all_inputs_as_internal() {
307 static TestModel model = {
308 .expectFailure = false,
309 .expectedMultinomialDistributionTolerance = 0,
310 .isRelaxed = false,
311 .main = {
312 .inputIndexes = {1, 5, 9, 12, 16, 17, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66},
313 .operands = {{ // input
314 .channelQuant = {},
315 .data = TestBuffer::createFromVector<float>({}),
316 .dimensions = {1, 2},
317 .isIgnored = false,
318 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
319 .numberOfConsumers = 1,
320 .scale = 0.0f,
321 .type = TestOperandType::TENSOR_FLOAT32,
322 .zeroPoint = 0
323 }, { // input_to_input_weights
324 .channelQuant = {},
325 .data = TestBuffer::createFromVector<float>({}),
326 .dimensions = {4, 2},
327 .isIgnored = false,
328 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
329 .numberOfConsumers = 1,
330 .scale = 0.0f,
331 .type = TestOperandType::TENSOR_FLOAT32,
332 .zeroPoint = 0
333 }, { // input_to_forget_weights
334 .channelQuant = {},
335 .data = TestBuffer::createFromVector<float>({}),
336 .dimensions = {4, 2},
337 .isIgnored = false,
338 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
339 .numberOfConsumers = 1,
340 .scale = 0.0f,
341 .type = TestOperandType::TENSOR_FLOAT32,
342 .zeroPoint = 0
343 }, { // input_to_cell_weights
344 .channelQuant = {},
345 .data = TestBuffer::createFromVector<float>({}),
346 .dimensions = {4, 2},
347 .isIgnored = false,
348 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
349 .numberOfConsumers = 1,
350 .scale = 0.0f,
351 .type = TestOperandType::TENSOR_FLOAT32,
352 .zeroPoint = 0
353 }, { // input_to_output_weights
354 .channelQuant = {},
355 .data = TestBuffer::createFromVector<float>({}),
356 .dimensions = {4, 2},
357 .isIgnored = false,
358 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
359 .numberOfConsumers = 1,
360 .scale = 0.0f,
361 .type = TestOperandType::TENSOR_FLOAT32,
362 .zeroPoint = 0
363 }, { // recurrent_to_intput_weights
364 .channelQuant = {},
365 .data = TestBuffer::createFromVector<float>({}),
366 .dimensions = {4, 4},
367 .isIgnored = false,
368 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
369 .numberOfConsumers = 1,
370 .scale = 0.0f,
371 .type = TestOperandType::TENSOR_FLOAT32,
372 .zeroPoint = 0
373 }, { // recurrent_to_forget_weights
374 .channelQuant = {},
375 .data = TestBuffer::createFromVector<float>({}),
376 .dimensions = {4, 4},
377 .isIgnored = false,
378 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
379 .numberOfConsumers = 1,
380 .scale = 0.0f,
381 .type = TestOperandType::TENSOR_FLOAT32,
382 .zeroPoint = 0
383 }, { // recurrent_to_cell_weights
384 .channelQuant = {},
385 .data = TestBuffer::createFromVector<float>({}),
386 .dimensions = {4, 4},
387 .isIgnored = false,
388 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
389 .numberOfConsumers = 1,
390 .scale = 0.0f,
391 .type = TestOperandType::TENSOR_FLOAT32,
392 .zeroPoint = 0
393 }, { // recurrent_to_output_weights
394 .channelQuant = {},
395 .data = TestBuffer::createFromVector<float>({}),
396 .dimensions = {4, 4},
397 .isIgnored = false,
398 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
399 .numberOfConsumers = 1,
400 .scale = 0.0f,
401 .type = TestOperandType::TENSOR_FLOAT32,
402 .zeroPoint = 0
403 }, { // cell_to_input_weights
404 .channelQuant = {},
405 .data = TestBuffer::createFromVector<float>({}),
406 .dimensions = {0},
407 .isIgnored = false,
408 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
409 .numberOfConsumers = 1,
410 .scale = 0.0f,
411 .type = TestOperandType::TENSOR_FLOAT32,
412 .zeroPoint = 0
413 }, { // cell_to_forget_weights
414 .channelQuant = {},
415 .data = TestBuffer::createFromVector<float>({}),
416 .dimensions = {4},
417 .isIgnored = false,
418 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
419 .numberOfConsumers = 1,
420 .scale = 0.0f,
421 .type = TestOperandType::TENSOR_FLOAT32,
422 .zeroPoint = 0
423 }, { // cell_to_output_weights
424 .channelQuant = {},
425 .data = TestBuffer::createFromVector<float>({}),
426 .dimensions = {4},
427 .isIgnored = false,
428 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
429 .numberOfConsumers = 1,
430 .scale = 0.0f,
431 .type = TestOperandType::TENSOR_FLOAT32,
432 .zeroPoint = 0
433 }, { // input_gate_bias
434 .channelQuant = {},
435 .data = TestBuffer::createFromVector<float>({}),
436 .dimensions = {4},
437 .isIgnored = false,
438 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
439 .numberOfConsumers = 1,
440 .scale = 0.0f,
441 .type = TestOperandType::TENSOR_FLOAT32,
442 .zeroPoint = 0
443 }, { // forget_gate_bias
444 .channelQuant = {},
445 .data = TestBuffer::createFromVector<float>({}),
446 .dimensions = {4},
447 .isIgnored = false,
448 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
449 .numberOfConsumers = 1,
450 .scale = 0.0f,
451 .type = TestOperandType::TENSOR_FLOAT32,
452 .zeroPoint = 0
453 }, { // cell_gate_bias
454 .channelQuant = {},
455 .data = TestBuffer::createFromVector<float>({}),
456 .dimensions = {4},
457 .isIgnored = false,
458 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
459 .numberOfConsumers = 1,
460 .scale = 0.0f,
461 .type = TestOperandType::TENSOR_FLOAT32,
462 .zeroPoint = 0
463 }, { // output_gate_bias
464 .channelQuant = {},
465 .data = TestBuffer::createFromVector<float>({}),
466 .dimensions = {4},
467 .isIgnored = false,
468 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
469 .numberOfConsumers = 1,
470 .scale = 0.0f,
471 .type = TestOperandType::TENSOR_FLOAT32,
472 .zeroPoint = 0
473 }, { // projection_weights
474 .channelQuant = {},
475 .data = TestBuffer::createFromVector<float>({}),
476 .dimensions = {0, 0},
477 .isIgnored = false,
478 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
479 .numberOfConsumers = 1,
480 .scale = 0.0f,
481 .type = TestOperandType::TENSOR_FLOAT32,
482 .zeroPoint = 0
483 }, { // projection_bias
484 .channelQuant = {},
485 .data = TestBuffer::createFromVector<float>({}),
486 .dimensions = {0},
487 .isIgnored = false,
488 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
489 .numberOfConsumers = 1,
490 .scale = 0.0f,
491 .type = TestOperandType::TENSOR_FLOAT32,
492 .zeroPoint = 0
493 }, { // output_state_in
494 .channelQuant = {},
495 .data = TestBuffer::createFromVector<float>({}),
496 .dimensions = {1, 4},
497 .isIgnored = false,
498 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
499 .numberOfConsumers = 1,
500 .scale = 0.0f,
501 .type = TestOperandType::TENSOR_FLOAT32,
502 .zeroPoint = 0
503 }, { // cell_state_in
504 .channelQuant = {},
505 .data = TestBuffer::createFromVector<float>({}),
506 .dimensions = {1, 4},
507 .isIgnored = false,
508 .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE,
509 .numberOfConsumers = 1,
510 .scale = 0.0f,
511 .type = TestOperandType::TENSOR_FLOAT32,
512 .zeroPoint = 0
513 }, { // activation_param
514 .channelQuant = {},
515 .data = TestBuffer::createFromVector<int32_t>({4}),
516 .dimensions = {},
517 .isIgnored = false,
518 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
519 .numberOfConsumers = 1,
520 .scale = 0.0f,
521 .type = TestOperandType::INT32,
522 .zeroPoint = 0
523 }, { // cell_clip_param
524 .channelQuant = {},
525 .data = TestBuffer::createFromVector<float>({0.0f}),
526 .dimensions = {},
527 .isIgnored = false,
528 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
529 .numberOfConsumers = 1,
530 .scale = 0.0f,
531 .type = TestOperandType::FLOAT32,
532 .zeroPoint = 0
533 }, { // proj_clip_param
534 .channelQuant = {},
535 .data = TestBuffer::createFromVector<float>({0.0f}),
536 .dimensions = {},
537 .isIgnored = false,
538 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
539 .numberOfConsumers = 1,
540 .scale = 0.0f,
541 .type = TestOperandType::FLOAT32,
542 .zeroPoint = 0
543 }, { // scratch_buffer
544 .channelQuant = {},
545 .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}),
546 .dimensions = {1, 12},
547 .isIgnored = true,
548 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
549 .numberOfConsumers = 0,
550 .scale = 0.0f,
551 .type = TestOperandType::TENSOR_FLOAT32,
552 .zeroPoint = 0
553 }, { // output_state_out
554 .channelQuant = {},
555 .data = TestBuffer::createFromVector<float>({-0.364445f, -0.00352185f, 0.128866f, -0.0516365f}),
556 .dimensions = {1, 4},
557 .isIgnored = false,
558 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
559 .numberOfConsumers = 0,
560 .scale = 0.0f,
561 .type = TestOperandType::TENSOR_FLOAT32,
562 .zeroPoint = 0
563 }, { // cell_state_out
564 .channelQuant = {},
565 .data = TestBuffer::createFromVector<float>({-0.760444f, -0.0180416f, 0.182264f, -0.0649371f}),
566 .dimensions = {1, 4},
567 .isIgnored = false,
568 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
569 .numberOfConsumers = 0,
570 .scale = 0.0f,
571 .type = TestOperandType::TENSOR_FLOAT32,
572 .zeroPoint = 0
573 }, { // output
574 .channelQuant = {},
575 .data = TestBuffer::createFromVector<float>({-0.36444446f, -0.00352185f, 0.12886585f, -0.05163646f}),
576 .dimensions = {1, 4},
577 .isIgnored = false,
578 .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT,
579 .numberOfConsumers = 0,
580 .scale = 0.0f,
581 .type = TestOperandType::TENSOR_FLOAT32,
582 .zeroPoint = 0
583 }, { // input_new
584 .channelQuant = {},
585 .data = TestBuffer::createFromVector<float>({2.0f, 3.0f}),
586 .dimensions = {1, 2},
587 .isIgnored = false,
588 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
589 .numberOfConsumers = 1,
590 .scale = 0.0f,
591 .type = TestOperandType::TENSOR_FLOAT32,
592 .zeroPoint = 0
593 }, { // placeholder
594 .channelQuant = {},
595 .data = TestBuffer::createFromVector<float>({0.0f}),
596 .dimensions = {1},
597 .isIgnored = false,
598 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
599 .numberOfConsumers = 1,
600 .scale = 0.0f,
601 .type = TestOperandType::TENSOR_FLOAT32,
602 .zeroPoint = 0
603 }, { // param
604 .channelQuant = {},
605 .data = TestBuffer::createFromVector<int32_t>({0}),
606 .dimensions = {},
607 .isIgnored = false,
608 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
609 .numberOfConsumers = 1,
610 .scale = 0.0f,
611 .type = TestOperandType::INT32,
612 .zeroPoint = 0
613 }, { // input_to_forget_weights_new
614 .channelQuant = {},
615 .data = TestBuffer::createFromVector<float>({-0.55291498f, -0.42866567f, 0.13056988f, -0.3633365f, -0.22755712f, 0.28253698f, 0.24407166f, 0.33826375f}),
616 .dimensions = {4, 2},
617 .isIgnored = false,
618 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
619 .numberOfConsumers = 1,
620 .scale = 0.0f,
621 .type = TestOperandType::TENSOR_FLOAT32,
622 .zeroPoint = 0
623 }, { // placeholder1
624 .channelQuant = {},
625 .data = TestBuffer::createFromVector<float>({0.0f}),
626 .dimensions = {1},
627 .isIgnored = false,
628 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
629 .numberOfConsumers = 1,
630 .scale = 0.0f,
631 .type = TestOperandType::TENSOR_FLOAT32,
632 .zeroPoint = 0
633 }, { // param1
634 .channelQuant = {},
635 .data = TestBuffer::createFromVector<int32_t>({0}),
636 .dimensions = {},
637 .isIgnored = false,
638 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
639 .numberOfConsumers = 1,
640 .scale = 0.0f,
641 .type = TestOperandType::INT32,
642 .zeroPoint = 0
643 }, { // input_to_cell_weights_new
644 .channelQuant = {},
645 .data = TestBuffer::createFromVector<float>({-0.49770179f, -0.27711356f, -0.09624726f, 0.05100781f, 0.04717243f, 0.48944736f, -0.38535351f, -0.17212132f}),
646 .dimensions = {4, 2},
647 .isIgnored = false,
648 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
649 .numberOfConsumers = 1,
650 .scale = 0.0f,
651 .type = TestOperandType::TENSOR_FLOAT32,
652 .zeroPoint = 0
653 }, { // placeholder2
654 .channelQuant = {},
655 .data = TestBuffer::createFromVector<float>({0.0f}),
656 .dimensions = {1},
657 .isIgnored = false,
658 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
659 .numberOfConsumers = 1,
660 .scale = 0.0f,
661 .type = TestOperandType::TENSOR_FLOAT32,
662 .zeroPoint = 0
663 }, { // param2
664 .channelQuant = {},
665 .data = TestBuffer::createFromVector<int32_t>({0}),
666 .dimensions = {},
667 .isIgnored = false,
668 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
669 .numberOfConsumers = 1,
670 .scale = 0.0f,
671 .type = TestOperandType::INT32,
672 .zeroPoint = 0
673 }, { // input_to_output_weights_new
674 .channelQuant = {},
675 .data = TestBuffer::createFromVector<float>({0.10725588f, -0.02335852f, -0.55932593f, -0.09426838f, -0.44257352f, 0.54939759f, 0.01533556f, 0.42751634f}),
676 .dimensions = {4, 2},
677 .isIgnored = false,
678 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
679 .numberOfConsumers = 1,
680 .scale = 0.0f,
681 .type = TestOperandType::TENSOR_FLOAT32,
682 .zeroPoint = 0
683 }, { // placeholder3
684 .channelQuant = {},
685 .data = TestBuffer::createFromVector<float>({0.0f}),
686 .dimensions = {1},
687 .isIgnored = false,
688 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
689 .numberOfConsumers = 1,
690 .scale = 0.0f,
691 .type = TestOperandType::TENSOR_FLOAT32,
692 .zeroPoint = 0
693 }, { // param3
694 .channelQuant = {},
695 .data = TestBuffer::createFromVector<int32_t>({0}),
696 .dimensions = {},
697 .isIgnored = false,
698 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
699 .numberOfConsumers = 1,
700 .scale = 0.0f,
701 .type = TestOperandType::INT32,
702 .zeroPoint = 0
703 }, { // recurrent_to_forget_weights_new
704 .channelQuant = {},
705 .data = TestBuffer::createFromVector<float>({-0.13832897f, -0.0515101f, -0.2359007f, -0.16661474f, -0.14340827f, 0.36986142f, 0.23414481f, 0.55899f, 0.10798943f, -0.41174671f, 0.17751795f, -0.34484994f, -0.35874045f, -0.11352962f, 0.27268326f, 0.54058349f}),
706 .dimensions = {4, 4},
707 .isIgnored = false,
708 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
709 .numberOfConsumers = 1,
710 .scale = 0.0f,
711 .type = TestOperandType::TENSOR_FLOAT32,
712 .zeroPoint = 0
713 }, { // placeholder4
714 .channelQuant = {},
715 .data = TestBuffer::createFromVector<float>({0.0f}),
716 .dimensions = {1},
717 .isIgnored = false,
718 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
719 .numberOfConsumers = 1,
720 .scale = 0.0f,
721 .type = TestOperandType::TENSOR_FLOAT32,
722 .zeroPoint = 0
723 }, { // param4
724 .channelQuant = {},
725 .data = TestBuffer::createFromVector<int32_t>({0}),
726 .dimensions = {},
727 .isIgnored = false,
728 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
729 .numberOfConsumers = 1,
730 .scale = 0.0f,
731 .type = TestOperandType::INT32,
732 .zeroPoint = 0
733 }, { // recurrent_to_cell_weights_new
734 .channelQuant = {},
735 .data = TestBuffer::createFromVector<float>({0.54066205f, -0.32668582f, -0.43562764f, -0.56094903f, 0.42957711f, 0.01841056f, -0.32764608f, -0.33027974f, -0.10826075f, 0.20675004f, 0.19069612f, -0.03026325f, -0.54532051f, 0.33003211f, 0.44901288f, 0.21193194f}),
736 .dimensions = {4, 4},
737 .isIgnored = false,
738 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
739 .numberOfConsumers = 1,
740 .scale = 0.0f,
741 .type = TestOperandType::TENSOR_FLOAT32,
742 .zeroPoint = 0
743 }, { // placeholder5
744 .channelQuant = {},
745 .data = TestBuffer::createFromVector<float>({0.0f}),
746 .dimensions = {1},
747 .isIgnored = false,
748 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
749 .numberOfConsumers = 1,
750 .scale = 0.0f,
751 .type = TestOperandType::TENSOR_FLOAT32,
752 .zeroPoint = 0
753 }, { // param5
754 .channelQuant = {},
755 .data = TestBuffer::createFromVector<int32_t>({0}),
756 .dimensions = {},
757 .isIgnored = false,
758 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
759 .numberOfConsumers = 1,
760 .scale = 0.0f,
761 .type = TestOperandType::INT32,
762 .zeroPoint = 0
763 }, { // recurrent_to_output_weights_new
764 .channelQuant = {},
765 .data = TestBuffer::createFromVector<float>({0.41613156f, 0.42610586f, -0.16495961f, -0.5663873f, 0.30579174f, -0.05115908f, -0.33941799f, 0.23364776f, 0.11178309f, 0.09481031f, -0.26424935f, 0.46261835f, 0.50248802f, 0.26114327f, -0.43736315f, 0.33149987f}),
766 .dimensions = {4, 4},
767 .isIgnored = false,
768 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
769 .numberOfConsumers = 1,
770 .scale = 0.0f,
771 .type = TestOperandType::TENSOR_FLOAT32,
772 .zeroPoint = 0
773 }, { // placeholder6
774 .channelQuant = {},
775 .data = TestBuffer::createFromVector<float>({0.0f}),
776 .dimensions = {1},
777 .isIgnored = false,
778 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
779 .numberOfConsumers = 1,
780 .scale = 0.0f,
781 .type = TestOperandType::TENSOR_FLOAT32,
782 .zeroPoint = 0
783 }, { // param6
784 .channelQuant = {},
785 .data = TestBuffer::createFromVector<int32_t>({0}),
786 .dimensions = {},
787 .isIgnored = false,
788 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
789 .numberOfConsumers = 1,
790 .scale = 0.0f,
791 .type = TestOperandType::INT32,
792 .zeroPoint = 0
793 }, { // cell_to_forget_weights_new
794 .channelQuant = {},
795 .data = TestBuffer::createFromVector<float>({0.47485286f, -0.51955009f, -0.24458408f, 0.31544167f}),
796 .dimensions = {4},
797 .isIgnored = false,
798 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
799 .numberOfConsumers = 1,
800 .scale = 0.0f,
801 .type = TestOperandType::TENSOR_FLOAT32,
802 .zeroPoint = 0
803 }, { // placeholder7
804 .channelQuant = {},
805 .data = TestBuffer::createFromVector<float>({0.0f}),
806 .dimensions = {1},
807 .isIgnored = false,
808 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
809 .numberOfConsumers = 1,
810 .scale = 0.0f,
811 .type = TestOperandType::TENSOR_FLOAT32,
812 .zeroPoint = 0
813 }, { // param7
814 .channelQuant = {},
815 .data = TestBuffer::createFromVector<int32_t>({0}),
816 .dimensions = {},
817 .isIgnored = false,
818 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
819 .numberOfConsumers = 1,
820 .scale = 0.0f,
821 .type = TestOperandType::INT32,
822 .zeroPoint = 0
823 }, { // cell_to_output_weights_new
824 .channelQuant = {},
825 .data = TestBuffer::createFromVector<float>({-0.17135078f, 0.82760304f, 0.85573703f, -0.77109635f}),
826 .dimensions = {4},
827 .isIgnored = false,
828 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
829 .numberOfConsumers = 1,
830 .scale = 0.0f,
831 .type = TestOperandType::TENSOR_FLOAT32,
832 .zeroPoint = 0
833 }, { // placeholder8
834 .channelQuant = {},
835 .data = TestBuffer::createFromVector<float>({0.0f}),
836 .dimensions = {1},
837 .isIgnored = false,
838 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
839 .numberOfConsumers = 1,
840 .scale = 0.0f,
841 .type = TestOperandType::TENSOR_FLOAT32,
842 .zeroPoint = 0
843 }, { // param8
844 .channelQuant = {},
845 .data = TestBuffer::createFromVector<int32_t>({0}),
846 .dimensions = {},
847 .isIgnored = false,
848 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
849 .numberOfConsumers = 1,
850 .scale = 0.0f,
851 .type = TestOperandType::INT32,
852 .zeroPoint = 0
853 }, { // forget_gate_bias_new
854 .channelQuant = {},
855 .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 1.0f, 1.0f}),
856 .dimensions = {4},
857 .isIgnored = false,
858 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
859 .numberOfConsumers = 1,
860 .scale = 0.0f,
861 .type = TestOperandType::TENSOR_FLOAT32,
862 .zeroPoint = 0
863 }, { // placeholder9
864 .channelQuant = {},
865 .data = TestBuffer::createFromVector<float>({0.0f}),
866 .dimensions = {1},
867 .isIgnored = false,
868 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
869 .numberOfConsumers = 1,
870 .scale = 0.0f,
871 .type = TestOperandType::TENSOR_FLOAT32,
872 .zeroPoint = 0
873 }, { // param9
874 .channelQuant = {},
875 .data = TestBuffer::createFromVector<int32_t>({0}),
876 .dimensions = {},
877 .isIgnored = false,
878 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
879 .numberOfConsumers = 1,
880 .scale = 0.0f,
881 .type = TestOperandType::INT32,
882 .zeroPoint = 0
883 }, { // cell_gate_bias_new
884 .channelQuant = {},
885 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
886 .dimensions = {4},
887 .isIgnored = false,
888 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
889 .numberOfConsumers = 1,
890 .scale = 0.0f,
891 .type = TestOperandType::TENSOR_FLOAT32,
892 .zeroPoint = 0
893 }, { // placeholder10
894 .channelQuant = {},
895 .data = TestBuffer::createFromVector<float>({0.0f}),
896 .dimensions = {1},
897 .isIgnored = false,
898 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
899 .numberOfConsumers = 1,
900 .scale = 0.0f,
901 .type = TestOperandType::TENSOR_FLOAT32,
902 .zeroPoint = 0
903 }, { // param10
904 .channelQuant = {},
905 .data = TestBuffer::createFromVector<int32_t>({0}),
906 .dimensions = {},
907 .isIgnored = false,
908 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
909 .numberOfConsumers = 1,
910 .scale = 0.0f,
911 .type = TestOperandType::INT32,
912 .zeroPoint = 0
913 }, { // output_gate_bias_new
914 .channelQuant = {},
915 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
916 .dimensions = {4},
917 .isIgnored = false,
918 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
919 .numberOfConsumers = 1,
920 .scale = 0.0f,
921 .type = TestOperandType::TENSOR_FLOAT32,
922 .zeroPoint = 0
923 }, { // placeholder11
924 .channelQuant = {},
925 .data = TestBuffer::createFromVector<float>({0.0f}),
926 .dimensions = {1},
927 .isIgnored = false,
928 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
929 .numberOfConsumers = 1,
930 .scale = 0.0f,
931 .type = TestOperandType::TENSOR_FLOAT32,
932 .zeroPoint = 0
933 }, { // param11
934 .channelQuant = {},
935 .data = TestBuffer::createFromVector<int32_t>({0}),
936 .dimensions = {},
937 .isIgnored = false,
938 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
939 .numberOfConsumers = 1,
940 .scale = 0.0f,
941 .type = TestOperandType::INT32,
942 .zeroPoint = 0
943 }, { // output_state_in_new
944 .channelQuant = {},
945 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
946 .dimensions = {1, 4},
947 .isIgnored = false,
948 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
949 .numberOfConsumers = 1,
950 .scale = 0.0f,
951 .type = TestOperandType::TENSOR_FLOAT32,
952 .zeroPoint = 0
953 }, { // placeholder12
954 .channelQuant = {},
955 .data = TestBuffer::createFromVector<float>({0.0f}),
956 .dimensions = {1},
957 .isIgnored = false,
958 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
959 .numberOfConsumers = 1,
960 .scale = 0.0f,
961 .type = TestOperandType::TENSOR_FLOAT32,
962 .zeroPoint = 0
963 }, { // param12
964 .channelQuant = {},
965 .data = TestBuffer::createFromVector<int32_t>({0}),
966 .dimensions = {},
967 .isIgnored = false,
968 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
969 .numberOfConsumers = 1,
970 .scale = 0.0f,
971 .type = TestOperandType::INT32,
972 .zeroPoint = 0
973 }, { // cell_state_in_new
974 .channelQuant = {},
975 .data = TestBuffer::createFromVector<float>({0.0f, 0.0f, 0.0f, 0.0f}),
976 .dimensions = {1, 4},
977 .isIgnored = false,
978 .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT,
979 .numberOfConsumers = 1,
980 .scale = 0.0f,
981 .type = TestOperandType::TENSOR_FLOAT32,
982 .zeroPoint = 0
983 }, { // placeholder13
984 .channelQuant = {},
985 .data = TestBuffer::createFromVector<float>({0.0f}),
986 .dimensions = {1},
987 .isIgnored = false,
988 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
989 .numberOfConsumers = 1,
990 .scale = 0.0f,
991 .type = TestOperandType::TENSOR_FLOAT32,
992 .zeroPoint = 0
993 }, { // param13
994 .channelQuant = {},
995 .data = TestBuffer::createFromVector<int32_t>({0}),
996 .dimensions = {},
997 .isIgnored = false,
998 .lifetime = TestOperandLifeTime::CONSTANT_COPY,
999 .numberOfConsumers = 1,
1000 .scale = 0.0f,
1001 .type = TestOperandType::INT32,
1002 .zeroPoint = 0
1003 }},
1004 .operations = {{
1005 .inputs = {27, 28, 29},
1006 .outputs = {0},
1007 .type = TestOperationType::ADD
1008 }, {
1009 .inputs = {30, 31, 32},
1010 .outputs = {2},
1011 .type = TestOperationType::ADD
1012 }, {
1013 .inputs = {33, 34, 35},
1014 .outputs = {3},
1015 .type = TestOperationType::ADD
1016 }, {
1017 .inputs = {36, 37, 38},
1018 .outputs = {4},
1019 .type = TestOperationType::ADD
1020 }, {
1021 .inputs = {39, 40, 41},
1022 .outputs = {6},
1023 .type = TestOperationType::ADD
1024 }, {
1025 .inputs = {42, 43, 44},
1026 .outputs = {7},
1027 .type = TestOperationType::ADD
1028 }, {
1029 .inputs = {45, 46, 47},
1030 .outputs = {8},
1031 .type = TestOperationType::ADD
1032 }, {
1033 .inputs = {48, 49, 50},
1034 .outputs = {10},
1035 .type = TestOperationType::ADD
1036 }, {
1037 .inputs = {51, 52, 53},
1038 .outputs = {11},
1039 .type = TestOperationType::ADD
1040 }, {
1041 .inputs = {54, 55, 56},
1042 .outputs = {13},
1043 .type = TestOperationType::ADD
1044 }, {
1045 .inputs = {57, 58, 59},
1046 .outputs = {14},
1047 .type = TestOperationType::ADD
1048 }, {
1049 .inputs = {60, 61, 62},
1050 .outputs = {15},
1051 .type = TestOperationType::ADD
1052 }, {
1053 .inputs = {63, 64, 65},
1054 .outputs = {18},
1055 .type = TestOperationType::ADD
1056 }, {
1057 .inputs = {66, 67, 68},
1058 .outputs = {19},
1059 .type = TestOperationType::ADD
1060 }, {
1061 .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22},
1062 .outputs = {23, 24, 25, 26},
1063 .type = TestOperationType::LSTM
1064 }},
1065 .outputIndexes = {23, 24, 25, 26}
1066 },
1067 .minSupportedVersion = TestHalVersion::V1_0,
1068 .referenced = {}
1069 };
1070 return model;
1071 }
1072
1073 const auto dummy_test_model_all_inputs_as_internal = TestModelManager::get().add("lstm2_all_inputs_as_internal", get_test_model_all_inputs_as_internal());
1074
1075 } // namespace generated_tests::lstm2
1076
1077