ArmNN
 20.08
ElementwiseUnaryTestImpl.hpp File Reference

Go to the source code of this file.

Functions

std::unique_ptr< armnn::IWorkloadCreateWorkload (const armnn::IWorkloadFactory &workloadFactory, const armnn::WorkloadInfo &info, const armnn::ElementwiseUnaryQueueDescriptor &descriptor)
 
template<std::size_t NumDims, armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, NumDims > ElementwiseUnaryTestHelper (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::UnaryOperation op, const unsigned int shape[NumDims], std::vector< float > values, float quantScale, int quantOffset, const unsigned int outShape[NumDims], std::vector< float > outValues, float outQuantScale, int outQuantOffset)
 
template<std::size_t NumDims, armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, NumDims > ElementwiseUnaryTestHelper (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::UnaryOperation op, const unsigned int shape[NumDims], std::vector< float > values, const unsigned int outShape[NumDims], std::vector< float > outValues, float quantScale=1.0f, int quantOffset=0)
 

Function Documentation

◆ CreateWorkload()

std::unique_ptr<armnn::IWorkload> CreateWorkload ( const armnn::IWorkloadFactory workloadFactory,
const armnn::WorkloadInfo info,
const armnn::ElementwiseUnaryQueueDescriptor descriptor 
)

Definition at line 8 of file ElementwiseUnaryTestImpl.cpp.

References IWorkloadFactory::CreateElementwiseUnary().

Referenced by ElementwiseUnaryTestHelper().

12 {
13  return workloadFactory.CreateElementwiseUnary(descriptor, info);
14 }
virtual std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &Info) const

◆ ElementwiseUnaryTestHelper() [1/2]

LayerTestResult<T, NumDims> ElementwiseUnaryTestHelper ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
armnn::UnaryOperation  op,
const unsigned int  shape[NumDims],
std::vector< float >  values,
float  quantScale,
int  quantOffset,
const unsigned int  outShape[NumDims],
std::vector< float >  outValues,
float  outQuantScale,
int  outQuantOffset 
)

Definition at line 35 of file ElementwiseUnaryTestImpl.hpp.

References ARMNN_NO_DEPRECATE_WARN_BEGIN, ARMNN_NO_DEPRECATE_WARN_END, CopyDataFromITensorHandle(), CopyDataToITensorHandle(), IWorkloadFactory::CreateTensorHandle(), CreateWorkload(), QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters, LayerTestResult< T, n >::output, LayerTestResult< T, n >::outputExpected, and TensorInfo::SetQuantizationScale().

47 {
48  armnn::TensorInfo inputTensorInfo{NumDims, shape, ArmnnType};
49  armnn::TensorInfo outputTensorInfo{NumDims, outShape, ArmnnType};
50 
51  inputTensorInfo.SetQuantizationScale(quantScale);
52  inputTensorInfo.SetQuantizationOffset(quantOffset);
53 
54  outputTensorInfo.SetQuantizationScale(outQuantScale);
55  outputTensorInfo.SetQuantizationOffset(outQuantOffset);
56 
57  auto input = MakeTensor<T, NumDims>(inputTensorInfo, ConvertToDataType<ArmnnType>(values, inputTensorInfo));
58 
59  LayerTestResult<T, NumDims> ret(outputTensorInfo);
60 
62  std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
63  std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
65 
68  qDesc.m_Parameters = desc;
70  AddInputToWorkload(qDesc, info, inputTensorInfo, inputHandle.get());
71  AddOutputToWorkload(qDesc, info, outputTensorInfo, outputHandle.get());
72  auto workload = CreateWorkload(workloadFactory, info, qDesc);
73 
74  inputHandle->Allocate();
75  outputHandle->Allocate();
76 
77  CopyDataToITensorHandle(inputHandle.get(), input.origin());
78 
79  workload->PostAllocationConfigure();
80  ExecuteWorkload(*workload, memoryManager);
81 
82  CopyDataFromITensorHandle(ret.output.origin(), outputHandle.get());
83 
84  ret.outputExpected = MakeTensor<T, NumDims>(outputTensorInfo, ConvertToDataType<ArmnnType>(outValues,
85  inputTensorInfo));
86  return ret;
87 }
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
void SetQuantizationScale(float scale)
Definition: Tensor.cpp:465
std::unique_ptr< armnn::IWorkload > CreateWorkload(const armnn::IWorkloadFactory &workloadFactory, const armnn::WorkloadInfo &info, const armnn::ElementwiseUnaryQueueDescriptor &descriptor)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:90
Contains information about inputs and outputs to a layer.
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)

◆ ElementwiseUnaryTestHelper() [2/2]

LayerTestResult<T, NumDims> ElementwiseUnaryTestHelper ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
armnn::UnaryOperation  op,
const unsigned int  shape[NumDims],
std::vector< float >  values,
const unsigned int  outShape[NumDims],
std::vector< float >  outValues,
float  quantScale = 1.0f,
int  quantOffset = 0 
)

Definition at line 92 of file ElementwiseUnaryTestImpl.hpp.

102 {
103  return ElementwiseUnaryTestHelper<NumDims, ArmnnType>(
104  workloadFactory,
105  memoryManager,
106  op,
107  shape,
108  values,
109  quantScale,
110  quantOffset,
111  outShape,
112  outValues,
113  quantScale,
114  quantOffset);
115 }