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