ArmNN
 20.08
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 695 of file SoftmaxTestImpl.cpp.

700 {
701  return CompareSoftmaxTestImpl<armnn::DataType::Float32>(
702  workloadFactory, memoryManager, refWorkloadFactory, beta);
703 }

◆ CompareSoftmaxUint8Test()

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

Definition at line 705 of file SoftmaxTestImpl.cpp.

710 {
711  return CompareSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
712  workloadFactory, memoryManager, refWorkloadFactory, beta);
713 }

◆ Simple3dAxisSoftmaxTest()

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

Definition at line 336 of file SoftmaxTestImpl.cpp.

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

◆ Simple3dSoftmaxFloat16Test()

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

Definition at line 646 of file SoftmaxTestImpl.cpp.

650 {
651  Simple3dSoftmaxOutputData data;
652  return Simple3dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta,
653  data.inputShape, data.outputData, data.inputData);
654 }

◆ Simple3dSoftmaxTest()

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

Definition at line 326 of file SoftmaxTestImpl.cpp.

330 {
331  Simple3dSoftmaxOutputData data;
332  return Simple3dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta,
333  data.inputShape, data.outputData, data.inputData);
334 }

◆ Simple3dSoftmaxUint16Test()

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

Definition at line 674 of file SoftmaxTestImpl.cpp.

678 {
679  Simple3dSoftmaxOutputData data;
680  return Simple3dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta,
681  data.inputShape, data.outputData, data.inputData);
682 }

◆ Simple3dSoftmaxUint8Test()

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

Definition at line 612 of file SoftmaxTestImpl.cpp.

616 {
617  Simple3dSoftmaxOutputData data;
618  return Simple3dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
619  workloadFactory,
620  memoryManager,
621  beta,
622  data.inputShape,
623  data.outputData,
624  data.inputData);
625 }

◆ Simple4dAxisSoftmaxTest()

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

Definition at line 440 of file SoftmaxTestImpl.cpp.

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

◆ Simple4dSoftmaxFloat16Test()

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

Definition at line 656 of file SoftmaxTestImpl.cpp.

660 {
661  Simple4dSoftmaxData data;
662  return Simple4dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta,
663  data.inputShape, data.outputData, data.inputData);
664 }

◆ Simple4dSoftmaxTest()

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

Definition at line 430 of file SoftmaxTestImpl.cpp.

434 {
435  Simple4dSoftmaxData data;
436  return Simple4dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta, data.inputShape,
437  data.outputData, data.inputData);
438 }

◆ Simple4dSoftmaxUint16Test()

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

Definition at line 684 of file SoftmaxTestImpl.cpp.

688 {
689  Simple4dSoftmaxData data;
690 
691  return Simple4dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta,
692  data.inputShape, data.outputData, data.inputData);
693 }

◆ Simple4dSoftmaxUint8Test()

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

Definition at line 627 of file SoftmaxTestImpl.cpp.

631 {
632  Simple4dSoftmaxData data;
633 
634  return Simple4dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, beta,
635  data.inputShape, data.outputData, data.inputData);
636 }

◆ SimpleAxisSoftmaxTest()

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

Definition at line 317 of file SoftmaxTestImpl.cpp.

322 {
323  return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta, axis);
324 }

◆ SimpleSoftmaxFloat16Test()

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

Definition at line 638 of file SoftmaxTestImpl.cpp.

642 {
643  return SimpleSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, beta);
644 }

◆ SimpleSoftmaxTest()

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

Definition at line 309 of file SoftmaxTestImpl.cpp.

313 {
314  return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, beta);
315 }

◆ SimpleSoftmaxUint16Test()

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

Definition at line 666 of file SoftmaxTestImpl.cpp.

670 {
671  return SimpleSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, beta);
672 }

◆ SimpleSoftmaxUint8Test()

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

Definition at line 604 of file SoftmaxTestImpl.cpp.

608 {
609  return SimpleSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, beta);
610 }