ArmNN
 20.02
SoftmaxTestImpl.cpp File Reference

Go to the source code of this file.

Functions

LayerTestResult< float, 2 > SimpleSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< float, 2 > SimpleAxisSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta, int axis)
 
LayerTestResult< float, 3 > Simple3dSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< float, 3 > Simple3dAxisSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta, int axis)
 
LayerTestResult< float, 4 > Simple4dSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< float, 4 > Simple4dAxisSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta, int axis)
 
LayerTestResult< uint8_t, 2 > SimpleSoftmaxUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< uint8_t, 3 > Simple3dSoftmaxUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< uint8_t, 4 > Simple4dSoftmaxUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< armnn::Half, 2 > SimpleSoftmaxFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< armnn::Half, 3 > Simple3dSoftmaxFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< armnn::Half, 4 > Simple4dSoftmaxFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< int16_t, 2 > SimpleSoftmaxUint16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< int16_t, 3 > Simple3dSoftmaxUint16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< int16_t, 4 > Simple4dSoftmaxUint16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, float beta)
 
LayerTestResult< float, 2 > CompareSoftmaxTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, float beta)
 
LayerTestResult< uint8_t, 2 > CompareSoftmaxUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, float beta)
 

Function Documentation

◆ CompareSoftmaxTest()

LayerTestResult<float,2> CompareSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
armnn::IWorkloadFactory refWorkloadFactory,
float  beta 
)

Definition at line 690 of file SoftmaxTestImpl.cpp.

695 {
696  return CompareSoftmaxTestImpl<armnn::DataType::Float32>(
697  workloadFactory, memoryManager, refWorkloadFactory, beta);
698 }

◆ CompareSoftmaxUint8Test()

LayerTestResult<uint8_t,2> CompareSoftmaxUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
armnn::IWorkloadFactory refWorkloadFactory,
float  beta 
)

Definition at line 700 of file SoftmaxTestImpl.cpp.

705 {
706  return CompareSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
707  workloadFactory, memoryManager, refWorkloadFactory, beta);
708 }

◆ Simple3dAxisSoftmaxTest()

LayerTestResult<float,3> Simple3dAxisSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta,
int  axis 
)

Definition at line 331 of file SoftmaxTestImpl.cpp.

336 {
337  armnn::TensorShape inputShape;
338  std::vector<float> inputData;
339  std::vector<float> outputData;
340  switch (axis)
341  {
342  case -3:
343  case 0:
344  {
345  inputShape = {5, 2, 2};
346 
347  inputData =
348  {
349  17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
350 
351  15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f
352  };
353 
354  outputData =
355  {
356  0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
357  0.236882800924671f,
358  0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
359  0.087144312427294f,
360 
361  0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
362  0.032058600957022f,
363  0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
364  7.246299848982885e-08f
365  };
366  break;
367  }
368  case -2:
369  case 1:
370  {
371  inputShape = {2, 5, 2};
372 
373  inputData =
374  {
375  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
376 
377  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f
378  };
379 
380  outputData =
381  {
382  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
383  0.087144312427294f,
384  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
385  7.246299848982885e-08f,
386 
387  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
388  0.087144312427294f,
389  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
390  7.246299848982885e-08f
391  };
392  break;
393  }
394  case -1:
395  case 2:
396  {
397  inputShape = {2, 2, 5};
398 
399  inputData =
400  {
401  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
402  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f
403  };
404 
405  outputData =
406  {
407  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
408  7.246299848982885e-08f,
409  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
410  7.246299848982885e-08f,
411 
412  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
413  7.246299848982885e-08f,
414  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
415  7.246299848982885e-08f
416  };
417  break;
418  }
419  }
420 
421  return Simple3dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta,
422  inputShape, outputData, inputData, axis);
423 }

◆ Simple3dSoftmaxFloat16Test()

LayerTestResult<armnn::Half,3> Simple3dSoftmaxFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 641 of file SoftmaxTestImpl.cpp.

645 {
646  Simple3dSoftmaxOutputData data;
647  return Simple3dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta,
648  data.inputShape, data.outputData, data.inputData);
649 }

◆ Simple3dSoftmaxTest()

LayerTestResult<float,3> Simple3dSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 321 of file SoftmaxTestImpl.cpp.

325 {
326  Simple3dSoftmaxOutputData data;
327  return Simple3dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta,
328  data.inputShape, data.outputData, data.inputData);
329 }

◆ Simple3dSoftmaxUint16Test()

LayerTestResult<int16_t,3> Simple3dSoftmaxUint16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 669 of file SoftmaxTestImpl.cpp.

673 {
674  Simple3dSoftmaxOutputData data;
675  return Simple3dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta,
676  data.inputShape, data.outputData, data.inputData);
677 }

◆ Simple3dSoftmaxUint8Test()

LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 607 of file SoftmaxTestImpl.cpp.

611 {
612  Simple3dSoftmaxOutputData data;
613  return Simple3dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
614  workloadFactory,
615  memoryManager,
616  beta,
617  data.inputShape,
618  data.outputData,
619  data.inputData);
620 }

◆ Simple4dAxisSoftmaxTest()

LayerTestResult<float,4> Simple4dAxisSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta,
int  axis 
)

Definition at line 435 of file SoftmaxTestImpl.cpp.

440 {
441  armnn::TensorShape inputShape;
442  std::vector<float> inputData;
443  std::vector<float> outputData;
444  switch (axis)
445  {
446  case -4:
447  case 0:
448  {
449  inputShape = {5, 2, 2, 2};
450 
451  inputData =
452  {
453  17.0f, -1.0f, 17.0f, -1.0f, 17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f,
454  16.0f, -2.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f, 15.0f, -3.0f,
455  15.0f, -3.0f, 15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 14.0f, -4.0f,
456  14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f, 1.0f, -17.0f, 1.0f, -17.0f
457  };
458 
459  outputData =
460  {
461  0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
462  0.643914213228014f,
463  0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.236882800924671f,
464  0.236882800924671f,
465  0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.236882800924671f,
466  0.236882800924671f,
467  0.236882800924671f, 0.087144312427294f, 0.087144312427294f, 0.087144312427294f,
468  0.087144312427294f,
469 
470  0.087144312427294f, 0.087144312427294f, 0.087144312427294f, 0.087144312427294f,
471  0.032058600957022f,
472  0.032058600957022f, 0.032058600957022f, 0.032058600957022f, 0.032058600957022f,
473  0.032058600957022f,
474  0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f,
475  7.246299848982885e-08f,
476  7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
477  7.246299848982885e-08f, 7.246299848982885e-08f
478  };
479  break;
480  }
481  case -3:
482  case 1:
483  {
484  inputShape = {2, 5, 2, 2};
485 
486  inputData =
487  {
488  17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
489  15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f,
490  17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
491  15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f
492  };
493 
494  outputData =
495  {
496  0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
497  0.236882800924671f,
498  0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
499  0.087144312427294f,
500  0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
501  0.032058600957022f,
502  0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
503  7.246299848982885e-08f,
504 
505 
506  0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
507  0.236882800924671f,
508  0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
509  0.087144312427294f,
510  0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
511  0.032058600957022f,
512  0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
513  7.246299848982885e-08f
514  };
515  break;
516  }
517  case -2:
518  case 2:
519  {
520  inputShape = {2, 2, 5, 2};
521 
522  inputData =
523  {
524  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
525  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
526  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
527  17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f
528  };
529 
530  outputData =
531  {
532  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
533  0.087144312427294f,
534  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
535  7.246299848982885e-08f,
536  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
537  0.087144312427294f,
538  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
539  7.246299848982885e-08f,
540 
541  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
542  0.087144312427294f,
543  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
544  7.246299848982885e-08f,
545  0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
546  0.087144312427294f,
547  0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
548  7.246299848982885e-08f
549  };
550  break;
551  }
552  case -1:
553  case 3:
554  {
555  inputShape = {2, 2, 2, 5};
556 
557  inputData =
558  {
559  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
560  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
561  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
562  17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f
563  };
564 
565  outputData =
566  {
567  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
568  7.246299848982885e-08f,
569  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
570  7.246299848982885e-08f,
571  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
572  7.246299848982885e-08f,
573  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
574  7.246299848982885e-08f,
575 
576  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
577  7.246299848982885e-08f,
578  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
579  7.246299848982885e-08f,
580  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
581  7.246299848982885e-08f,
582  0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
583  7.246299848982885e-08f
584  };
585  break;
586  }
587  }
588 
589  return Simple4dSoftmaxTestImpl<armnn::DataType::Float32>(
590  workloadFactory,
591  memoryManager,
592  beta,
593  inputShape,
594  outputData,
595  inputData,
596  axis);
597 }

◆ Simple4dSoftmaxFloat16Test()

LayerTestResult<armnn::Half,4> Simple4dSoftmaxFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 651 of file SoftmaxTestImpl.cpp.

655 {
656  Simple4dSoftmaxData data;
657  return Simple4dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta,
658  data.inputShape, data.outputData, data.inputData);
659 }

◆ Simple4dSoftmaxTest()

LayerTestResult<float,4> Simple4dSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 425 of file SoftmaxTestImpl.cpp.

429 {
430  Simple4dSoftmaxData data;
431  return Simple4dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta, data.inputShape,
432  data.outputData, data.inputData);
433 }

◆ Simple4dSoftmaxUint16Test()

LayerTestResult<int16_t,4> Simple4dSoftmaxUint16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 679 of file SoftmaxTestImpl.cpp.

683 {
684  Simple4dSoftmaxData data;
685 
686  return Simple4dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta,
687  data.inputShape, data.outputData, data.inputData);
688 }

◆ Simple4dSoftmaxUint8Test()

LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 622 of file SoftmaxTestImpl.cpp.

626 {
627  Simple4dSoftmaxData data;
628 
629  return Simple4dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, beta,
630  data.inputShape, data.outputData, data.inputData);
631 }

◆ SimpleAxisSoftmaxTest()

LayerTestResult<float,2> SimpleAxisSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta,
int  axis 
)

Definition at line 312 of file SoftmaxTestImpl.cpp.

317 {
318  return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta, axis);
319 }

◆ SimpleSoftmaxFloat16Test()

LayerTestResult<armnn::Half,2> SimpleSoftmaxFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 633 of file SoftmaxTestImpl.cpp.

637 {
638  return SimpleSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta);
639 }

◆ SimpleSoftmaxTest()

LayerTestResult<float,2> SimpleSoftmaxTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 304 of file SoftmaxTestImpl.cpp.

308 {
309  return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta);
310 }

◆ SimpleSoftmaxUint16Test()

LayerTestResult<int16_t,2> SimpleSoftmaxUint16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 661 of file SoftmaxTestImpl.cpp.

665 {
666  return SimpleSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta);
667 }

◆ SimpleSoftmaxUint8Test()

LayerTestResult<uint8_t,2> SimpleSoftmaxUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
float  beta 
)

Definition at line 599 of file SoftmaxTestImpl.cpp.

603 {
604  return SimpleSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, beta);
605 }