24 struct Simple3dSoftmaxOutputData
26 const std::vector<float> outputData =
28 0.0964599f, 0.26220518f, 0.0964599f, 0.0964599f,
29 0.15903549f, 0.0964599f, 0.0964599f, 0.0964599f
34 const std::vector<float> inputData =
36 0.0f, 1.0f, 0.0f, 0.0f,
37 0.5f, 0.0f, 0.0f, 0.0f,
41 struct Simple4dSoftmaxData
45 const std::vector<float> outputData =
47 0.0964599f, 0.26220518f, 0.0964599f, 0.0964599f,
48 0.15903549f, 0.0964599f, 0.0964599f, 0.0964599f
51 const std::vector<float> inputData =
53 0.0f, 1.0f, 0.0f, 0.0f,
54 0.5f, 0.0f, 0.0f, 0.0f
58 template<armnn::DataType ArmnnType, std::
size_t n,
typename T = armnn::ResolveType<ArmnnType>>
65 const std::vector<float>& outputData,
66 const std::vector<float>& inputData,
71 const float qScale = 1.f / 256.f;
72 const int qOffset = 0;
86 std::vector<T> input = armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset);
87 std::vector<T> expectedOutput = armnnUtils::QuantizedVector<T>(outputData, qScale, qOffset);
90 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
91 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
98 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
99 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
103 inputHandle->Allocate();
104 outputHandle->Allocate();
109 ExecuteWorkload(*workload, memoryManager);
115 outputHandle->GetShape(),
119 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
129 float x0[4] = { exp((0.f - 1.0f) * beta), exp((1.0f - 1.0f) * beta),
130 exp((0.0f - 1.0f) * beta), exp((0.0f - 1.0f) * beta) };
131 float sum0 = x0[0] + x0[1] + x0[2] + x0[3];
132 float x1[4] = { exp((0.5f - 0.5f) * beta), exp((0.0f - 0.5f) * beta),
133 exp((0.0f - 0.5f) * beta), exp((0.0f - 0.5f) * beta) };
134 float sum1 = x1[0] + x1[1] + x1[2] + x1[3];
136 const std::vector<float> outputData = { x0[0] / sum0, x0[1] / sum0, x0[2] / sum0, x0[3] / sum0,
137 x1[0] / sum1, x1[1] / sum1, x1[2] / sum1, x1[3] / sum1 };
139 const std::vector<float> inputData =
145 return SimpleSoftmaxBaseTestImpl<ArmnnType, 2>(workloadFactory, memoryManager, tensorHandleFactory, beta,
146 inputShape, outputData, inputData);
149 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
158 std::vector<float> inputData;
159 std::vector<float> outputData;
169 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f
174 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
176 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
177 7.246299848982885e-08f
188 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f
193 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
194 7.246299848982885e-08f,
195 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
196 7.246299848982885e-08f
201 return SimpleSoftmaxBaseTestImpl<ArmnnType, 2>(workloadFactory, memoryManager, tensorHandleFactory, beta,
202 inputShape, outputData, inputData, axis);
205 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
212 const std::vector<float>& outputData,
213 const std::vector<float>& inputData,
216 return SimpleSoftmaxBaseTestImpl<ArmnnType, 3>(workloadFactory, memoryManager, tensorHandleFactory, beta,
217 inputShape, outputData, inputData, axis);
220 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
227 const std::vector<float>& outputData,
228 const std::vector<float>& inputData,
232 return SimpleSoftmaxBaseTestImpl<ArmnnType, 4>(workloadFactory, memoryManager, tensorHandleFactory, beta,
233 inputShape, outputData, inputData, axis);
236 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
245 const int batchSize = 20;
246 const int channels = 30;
251 unsigned int inputShape[] = { batchSize, channels };
255 float qScale = 1.f / 256.f;
262 auto input = MakeRandomTensor<T>(inputTensorInfo, 0xF00D, 0.0f, 1.0f);
266 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
267 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
273 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
274 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
276 std::unique_ptr<armnn::ITensorHandle> outputHandleRef =
278 std::unique_ptr<armnn::ITensorHandle> inputHandleRef =
283 SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get());
284 SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get());
291 outputHandleRef->Allocate();
292 inputHandleRef->Allocate();
294 inputHandle->Allocate();
295 outputHandle->Allocate();
300 ExecuteWorkload(*workload, memoryManager);
302 workloadRef->Execute();
309 outputHandle->GetShape(),
321 return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, beta);
331 return SimpleSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager,
332 tensorHandleFactory, beta, axis);
341 Simple3dSoftmaxOutputData data;
342 return Simple3dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, beta,
343 data.inputShape, data.outputData, data.inputData);
354 std::vector<float> inputData;
355 std::vector<float> outputData;
361 inputShape = {5, 2, 2};
365 17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
367 15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f
372 0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
374 0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
377 0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
379 0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
380 7.246299848982885e-08f
387 inputShape = {2, 5, 2};
391 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
393 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f
398 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
400 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
401 7.246299848982885e-08f,
403 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
405 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
406 7.246299848982885e-08f
413 inputShape = {2, 2, 5};
417 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
418 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f
423 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
424 7.246299848982885e-08f,
425 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
426 7.246299848982885e-08f,
428 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
429 7.246299848982885e-08f,
430 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
431 7.246299848982885e-08f
437 return Simple3dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, beta,
438 inputShape, outputData, inputData, axis);
447 Simple4dSoftmaxData data;
448 return Simple4dSoftmaxTestImpl<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory,
449 beta, data.inputShape, data.outputData, data.inputData);
460 std::vector<float> inputData;
461 std::vector<float> outputData;
467 inputShape = {5, 2, 2, 2};
471 17.0f, -1.0f, 17.0f, -1.0f, 17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f,
472 16.0f, -2.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f, 15.0f, -3.0f,
473 15.0f, -3.0f, 15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 14.0f, -4.0f,
474 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f, 1.0f, -17.0f, 1.0f, -17.0f
479 0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
481 0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.236882800924671f,
483 0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.236882800924671f,
485 0.236882800924671f, 0.087144312427294f, 0.087144312427294f, 0.087144312427294f,
488 0.087144312427294f, 0.087144312427294f, 0.087144312427294f, 0.087144312427294f,
490 0.032058600957022f, 0.032058600957022f, 0.032058600957022f, 0.032058600957022f,
492 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f,
493 7.246299848982885e-08f,
494 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
495 7.246299848982885e-08f, 7.246299848982885e-08f
502 inputShape = {2, 5, 2, 2};
506 17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
507 15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f,
508 17.0f, -1.0f, 17.0f, -1.0f, 16.0f, -2.0f, 16.0f, -2.0f, 15.0f, -3.0f,
509 15.0f, -3.0f, 14.0f, -4.0f, 14.0f, -4.0f, 1.0f, -17.0f, 1.0f, -17.0f
514 0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
516 0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
518 0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
520 0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
521 7.246299848982885e-08f,
524 0.643914213228014f, 0.643914213228014f, 0.643914213228014f, 0.643914213228014f,
526 0.236882800924671f, 0.236882800924671f, 0.236882800924671f, 0.087144312427294f,
528 0.087144312427294f, 0.087144312427294f, 0.032058600957022f, 0.032058600957022f,
530 0.032058600957022f, 7.246299848982885e-08f, 7.246299848982885e-08f, 7.246299848982885e-08f,
531 7.246299848982885e-08f
538 inputShape = {2, 2, 5, 2};
542 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
543 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
544 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f,
545 17.0f, -1.0f, 16.0f, -2.0f, 15.0f, -3.0f, 14.0f, -4.0f, 1.0f, -17.0f
550 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
552 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
553 7.246299848982885e-08f,
554 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
556 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
557 7.246299848982885e-08f,
559 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
561 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
562 7.246299848982885e-08f,
563 0.643914213228014f, 0.643914213228014f, 0.236882800924671f, 0.236882800924671f,
565 0.087144312427294f, 0.032058600957022f, 0.032058600957022f, 7.246299848982885e-08f,
566 7.246299848982885e-08f
573 inputShape = {2, 2, 2, 5};
577 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
578 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
579 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f,
580 17.0f, 16.0f, 15.0f, 14.0f, 1.0f, -1.0f, -2.0f, -3.0f, -4.0f, -17.0f
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 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
590 7.246299848982885e-08f,
591 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
592 7.246299848982885e-08f,
594 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
595 7.246299848982885e-08f,
596 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
597 7.246299848982885e-08f,
598 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
599 7.246299848982885e-08f,
600 0.643914213228014f, 0.236882800924671f, 0.087144312427294f, 0.032058600957022f,
601 7.246299848982885e-08f
607 return Simple4dSoftmaxTestImpl<armnn::DataType::Float32>(
624 return SimpleSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, beta);
633 Simple3dSoftmaxOutputData data;
634 return Simple3dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
650 Simple4dSoftmaxData data;
652 return Simple4dSoftmaxTestImpl<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, beta,
653 data.inputShape, data.outputData, data.inputData);
662 return SimpleSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, tensorHandleFactory, beta);
671 Simple3dSoftmaxOutputData data;
672 return Simple3dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, tensorHandleFactory, beta,
673 data.inputShape, data.outputData, data.inputData);
682 Simple4dSoftmaxData data;
683 return Simple4dSoftmaxTestImpl<armnn::DataType::Float16>(workloadFactory, memoryManager, tensorHandleFactory, beta,
684 data.inputShape, data.outputData, data.inputData);
693 return SimpleSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, tensorHandleFactory, beta);
702 Simple3dSoftmaxOutputData data;
703 return Simple3dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, tensorHandleFactory, beta,
704 data.inputShape, data.outputData, data.inputData);
713 Simple4dSoftmaxData data;
715 return Simple4dSoftmaxTestImpl<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, tensorHandleFactory, beta,
716 data.inputShape, data.outputData, data.inputData);
727 return CompareSoftmaxTestImpl<armnn::DataType::Float32>(
728 workloadFactory, memoryManager, refWorkloadFactory, tensorHandleFactory, refTensorHandleFactory, beta);
739 return CompareSoftmaxTestImpl<armnn::DataType::QAsymmU8>(
740 workloadFactory, memoryManager, refWorkloadFactory, tensorHandleFactory, refTensorHandleFactory, beta);
LayerTestResult< float, 4 > Simple4dAxisSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta, int axis)
LayerTestResult< float, 4 > Simple4dSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerTestResult< int16_t, 3 > Simple3dSoftmaxUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
int m_Axis
Scalar, defaulted to the last index (-1), specifying the dimension the activation will be performed o...
const TensorShape & GetShape() const
LayerTestResult< armnn::Half, 3 > Simple3dSoftmaxFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerTestResult< int16_t, 4 > Simple4dSoftmaxUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
float m_Beta
Exponentiation value.
LayerTestResult< uint8_t, 2 > SimpleSoftmaxUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerTestResult< uint8_t, 2 > CompareSoftmaxUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::ITensorHandleFactory &refTensorHandleFactory, float beta)
LayerTestResult< uint8_t, 4 > Simple4dSoftmaxUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerDescriptor m_Parameters
LayerTestResult< float, 3 > Simple3dAxisSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta, int axis)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
void SetQuantizationScale(float scale)
#define ARMNN_ASSERT(COND)
LayerTestResult< float, 2 > CompareSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::ITensorHandleFactory &refTensorHandleFactory, float beta)
LayerTestResult< uint8_t, 3 > Simple3dSoftmaxUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< armnn::Half, 4 > Simple4dSoftmaxFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerTestResult< armnn::Half, 2 > SimpleSoftmaxFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
Contains information about TensorInfos of a layer.
void SetQuantizationOffset(int32_t offset)
LayerTestResult< float, 3 > Simple3dSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
LayerTestResult< float, 2 > SimpleSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
LayerTestResult< float, 2 > SimpleAxisSoftmaxTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta, int axis)
LayerTestResult< int16_t, 2 > SimpleSoftmaxUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float beta)