29 #include "tests/datasets/LSTMLayerDataset.h"
49 TensorShape t_shape =
tensor.info()->tensor_shape();
51 window.use_tensor_dimensions(t_shape);
52 Iterator out(&
tensor, window);
55 *
reinterpret_cast<T *
>(out.ptr()) = v[
coord2index(t_shape,
id)];
63 std::memcpy(
tensor.data(), v.data(),
sizeof(T) * v.size());
67 #if defined(__aarch64__)
68 constexpr AbsoluteTolerance<int16_t> tolerance_qsymm16(0);
69 #else // defined(__aarch64__)
70 constexpr AbsoluteTolerance<int16_t> tolerance_qsymm16(1);
71 #endif // defined(__aarch64__)
84 const int batch_size = 2;
89 QuantizationInfo
qasymm(1.f / 128.f, 128);
90 QuantizationInfo
qweights(1.f / 128.f, 128);
91 QuantizationInfo
qsymm_3(8.f / 32768.f, 0);
92 QuantizationInfo
qsymm_4(16.f / 32768.f, 0);
122 NELSTMLayerQuantized
lstmq;
128 input.allocator()->allocate();
178 209, 136, 59, 138 });
194 128, 128, 128, 128 });
203 128, 131, 35, 133 });
210 128, 131, 10, 136 });
223 const int batch_size = 16;
228 QuantizationInfo
qasymm(1.f / 128.f, 128);
229 QuantizationInfo
qweights(1.f / 128.f, 128);
230 QuantizationInfo
qsymm_3(8.f / 32768.f, 0);
231 QuantizationInfo
qsymm_4(16.f / 32768.f, 0);
261 NELSTMLayerQuantized
lstmq;
267 input.allocator()->allocate();
285 149, 227, 177, 187, 212, 229, 54, 111,
286 131, 116, 3, 58, 196, 26, 131, 255,
287 22, 106, 216, 69, 239, 12, 232, 207,
288 184, 56, 236, 172, 28, 143, 161, 124,
289 255, 33, 197, 122, 47, 197, 26, 229,
290 91, 79, 11, 160, 26, 80, 100, 36,
291 248, 186, 97, 61, 125, 46, 14, 100, });
294 234, 213, 85, 84, 59, 62, 150, 246,
295 182, 102, 158, 214, 182, 183, 94, 11,
296 158, 192, 92, 189, 160, 219, 206, 249,
297 88, 213, 193, 244, 151, 72, 129, 49,
298 239, 83, 106, 9, 169, 187, 125, 171,
299 32, 141, 126, 92, 13, 36, 224, 150,
300 187, 250, 178, 169, 89, 214, 91, 173 });
303 159, 32, 25, 175, 224, 183, 165, 35,
304 207, 69, 238, 228, 149, 214, 79, 6,
305 5, 66, 102, 14, 19, 111, 36, 143,
306 22, 85, 13, 78, 236, 121, 122, 77,
307 249, 39, 88, 12, 205, 143, 93, 240,
308 167, 89, 188, 50, 73, 69, 201, 251,
309 59, 32, 203, 184, 139, 191, 199, 74});
312 229, 114, 152, 171, 221, 153, 73, 229,
313 153, 165, 223, 239, 100, 38, 172, 211,
314 226, 133, 239, 207, 116, 230, 170, 100,
315 241, 95, 171, 124, 63, 115, 32, 127,
316 141, 239, 53, 193, 201, 53, 104, 178,
317 186, 212, 167, 107, 226, 230, 71, 213,
318 148, 217, 19, 248, 233, 195, 183, 156 });
321 84, 112, 144, 213, 138, 142, 112, 66,
322 117, 30, 101, 35, 25, 132, 211, 229,
323 183, 208, 102, 16, 38, 85, 101, 152,
324 226, 83, 132, 22, 161, 110, 157, 129,
325 184, 63, 168, 42, 220, 126, 209, 157,
326 5, 88, 243, 83, 249, 19, 226, 209,
327 173, 96, 185, 77, 146, 227, 238, 136 });
331 116, 142, 116, 180, 4, 172, 158, 143,
332 110, 40, 99, 28, 221, 153, 133, 2,
333 247, 144, 198, 100, 20, 15, 221, 196,
334 159, 178, 188, 151, 171, 15, 25, 217,
335 178, 109, 110, 118, 128, 39, 232, 234,
336 184, 214, 177, 13, 56, 6, 28, 252,
337 89, 187, 242, 59, 146, 111, 132, 129});
340 26, 241, 142, 114, 67, 181, 49, 57,
341 131, 152, 175, 77, 23, 63, 37, 124,
342 150, 113, 95, 103, 110, 201, 69, 97,
343 196, 242, 62, 214, 66, 19, 45, 135,
344 22, 168, 149, 104, 77, 101, 36, 68,
345 170, 116, 222, 100, 109, 1, 154, 18,
346 133, 215, 105, 93, 31, 57, 231, 112 });
350 7 , 166 , 104 , 114 , 83 , 40 , 1 , 195,
351 245 , 142 , 82 , 232 , 104 , 245 , 82 , 196,
352 111 , 56 , 156 , 9 , 141 , 240 , 180 , 148,
353 247 , 198 , 234 , 137 , 13 , 210 , 161 , 192,
354 196 , 59 , 233 , 184 , 142 , 187 , 140 , 166,
355 2 , 95 , 152 , 46 , 71 , 46 , 113 , 32,
356 175 , 229 , 86 , 87 , 62 , 93 , 74 , 130});
367 128, 128, 128, 128, 128, 128, 128, 128,
368 128, 128, 128, 128, 128, 128, 128, 128,
369 128, 128, 128, 128, 128, 128, 128, 128,
370 128, 128, 128, 128, 128, 128, 128, 128,
371 128, 128, 128, 128, 128, 128, 128, 128,
372 128, 128, 128, 128, 128, 128, 128, 128,
373 128, 128, 128, 128, 128, 128, 128, 128,
374 128, 128, 128, 128, 128, 128, 128, 128,
375 128, 128, 128, 128, 128, 128, 128, 128,
376 128, 128, 128, 128, 128, 128, 128, 128,
377 128, 128, 128, 128, 128, 128, 128, 128,
378 128, 128, 128, 128, 128, 128, 128, 128,
379 128, 128, 128, 128, 128, 128, 128, 128,
380 128, 128, 128, 128, 128, 128, 128, 128,
381 128, 128, 128, 128, 128, 128, 128, 128 });
384 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0,
393 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0});
401 fill_tensor(
input, std::vector<uint8_t> { 247, 203, 159, 131, 182, 114, 207, 195,
402 48 , 61 , 154, 16, 80, 101, 116, 255,
403 50 , 115 , 45, 186, 75, 212, 98, 48,
404 88 , 146 , 24, 143, 218, 174, 203, 200,
405 239 , 16 , 66, 136, 234, 54, 94, 51,
406 101 , 128 , 220, 213, 164, 82, 137, 255,
407 70 , 165 , 234, 220, 66, 35, 183, 206,
408 39 , 57 , 180, 202, 23, 172, 224, 109,
409 102 , 215 , 186, 82, 215, 147, 85, 187,
410 96 , 249 , 59, 116, 150, 44, 167, 128,
411 34 , 217 , 148, 193, 243, 38, 250, 208,
412 112 , 130 , 208, 29, 16, 122, 20, 92,
413 24 , 72 , 104, 29, 150, 233, 151, 19,
414 158 , 192 , 254, 70, 73, 142, 106, 152,
415 3 , 61 , 24, 135, 212, 9, 80, 234,
416 147 , 246 , 83, 249, 49, 14, 68, 50});
419 136, 128, 126, 128, 128, 173, 135, 130,
420 160, 128, 128, 128, 128, 138, 132, 129,
421 131, 128, 127, 128, 128, 169, 129, 131,
422 133, 128, 128, 128, 128, 182, 130, 129,
423 131, 128, 128, 128, 128, 163, 129, 130,
424 131, 128, 128, 128, 128, 149, 132, 129,
425 143, 128, 127, 128, 128, 150, 134, 131,
426 134, 128, 128, 128, 128, 167, 130, 130,
427 131, 128, 128, 128, 128, 152, 132, 129,
428 128, 128, 128, 128, 128, 169, 130, 130,
429 173, 128, 128, 128, 128, 148, 139, 130,
430 152, 128, 128, 128, 128, 168, 139, 132,
431 147, 128, 128, 128, 128, 161, 131, 132,
432 130, 128, 128, 128, 128, 159, 134, 128,
433 140, 128, 128, 128, 128, 133, 132, 128 });
440 135, 128, 127, 128, 128, 190, 137, 132,
441 160, 128, 128, 128, 128, 142, 133, 131,
442 130, 128, 128, 128, 128, 185, 129, 133,
443 132, 128, 128, 128, 128, 198, 131, 130,
444 130, 128, 128, 128, 128, 178, 130, 131,
445 131, 128, 128, 128, 128, 158, 132, 131,
446 142, 128, 127, 128, 128, 158, 135, 134,
447 133, 128, 128, 128, 128, 178, 131, 132,
448 131, 128, 128, 128, 128, 160, 132, 130,
449 128, 128, 128, 128, 128, 190, 131, 131,
450 170, 128, 128, 128, 128, 157, 142, 131,
451 149, 128, 128, 128, 128, 178, 142, 135,
452 145, 128, 128, 128, 129, 173, 132, 135,
453 129, 128, 128, 128, 128, 171, 134, 129,
454 140, 128, 128, 128, 128, 135, 132, 129});
464 const int batch_size = 2;
468 QuantizationInfo
qasymm(1.f / 128.f, 128);
469 QuantizationInfo
qweights(1.f / 16.f, 16);
470 QuantizationInfo
qsymm_3(8.f / 32768.f, 0);
471 QuantizationInfo
qsymm_4(16.f / 32768.f, 0);
501 NELSTMLayerQuantized
lstmq;
507 input.allocator()->allocate();
557 209, 136, 59, 138 });
573 128, 128, 128, 128 });
582 128, 128, 31, 128 });
595 128, 128, 1, 128, });