19 template<armnn::DataType ArmnnType,
typename T>
26 const float customPaddingValue)
33 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
35 std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
44 auto p = customPaddingValue;
45 std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
59 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
60 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
64 std::vector<std::pair<unsigned int, unsigned int>> padList;
65 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
66 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
72 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
73 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
79 inputHandle->Allocate();
80 outputHandle->Allocate();
84 workload->PostAllocationConfigure();
91 outputHandle->GetShape(),
95 template<armnn::DataType ArmnnType,
typename T>
108 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
110 std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
122 std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
146 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
147 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
151 std::vector<std::pair<unsigned int, unsigned int>> PadList;
152 PadList.push_back(std::pair<unsigned int, unsigned int>(0,1));
153 PadList.push_back(std::pair<unsigned int, unsigned int>(2,1));
154 PadList.push_back(std::pair<unsigned int, unsigned int>(2,2));
159 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
160 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
166 inputHandle->Allocate();
167 outputHandle->Allocate();
171 workload->PostAllocationConfigure();
177 expectedOutputValues,
178 outputHandle->GetShape(),
182 template<armnn::DataType ArmnnType,
typename T>
195 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
197 std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
221 std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
387 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
388 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
392 std::vector<std::pair<unsigned int, unsigned int>> PadList;
393 PadList.push_back(std::pair<unsigned int, unsigned int>(1,1));
394 PadList.push_back(std::pair<unsigned int, unsigned int>(2,1));
395 PadList.push_back(std::pair<unsigned int, unsigned int>(3,1));
396 PadList.push_back(std::pair<unsigned int, unsigned int>(1,1));
401 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
402 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
408 inputHandle->Allocate();
409 outputHandle->Allocate();
413 workload->PostAllocationConfigure();
419 expectedOutputValues,
420 outputHandle->GetShape(),
424 template<armnn::DataType ArmnnType,
typename T>
431 const float customPaddingValue)
438 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
440 std::vector<T> inputValues =
448 T p =
static_cast<T
>(customPaddingValue);
449 std::vector<T> expectedOutputValues =
462 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
463 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
468 std::vector<std::pair<unsigned int, unsigned int>> padList;
469 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
470 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
476 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
477 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
483 inputHandle->Allocate();
484 outputHandle->Allocate();
488 workload->PostAllocationConfigure();
494 expectedOutputValues,
495 outputHandle->GetShape(),
504 Pad2dTestCommon<armnn::DataType::QSymmS16>(
510 const float customPaddingValue);
513 Pad3dTestCommon<armnn::DataType::QSymmS16>(
521 Pad4dTestCommon<armnn::DataType::QSymmS16>(
529 PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
535 const float customPaddingValue);
538 PadQAsymmTestCommon<armnn::DataType::QAsymmU8>(
544 const float customPaddingValue);
555 return Pad2dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
563 return Pad2dTestCommon<armnn::DataType::QAsymmU8>(
564 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0, 1.0f);
572 return Pad3dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
580 return Pad4dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
588 return Pad2dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
596 return Pad2dTestCommon<armnn::DataType::Float32>(
597 workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0, 1.0f);
605 return Pad3dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
613 return Pad4dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
621 return Pad2dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
629 return Pad2dTestCommon<armnn::DataType::BFloat16>(
630 workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0, 1.0f);
638 return Pad3dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
646 return Pad4dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
654 return Pad2dTestCommon<armnn::DataType::QSymmS8>(
655 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
663 return Pad2dTestCommon<armnn::DataType::QSymmS8>(
664 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0, 1.0f);
672 return Pad3dTestCommon<armnn::DataType::QSymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
680 return Pad4dTestCommon<armnn::DataType::QSymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
688 return PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
689 workloadFactory, memoryManager, tensorHandleFactory, 2.0f, 2);
697 return PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
698 workloadFactory, memoryManager, tensorHandleFactory, 2.0f, 3, 1.0f);
LayerTestResult< T, 2 > Pad2dTestCommon(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset, const float customPaddingValue)
LayerTestResult< int8_t, 4 > PadInt84dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
const TensorShape & GetShape() const
LayerTestResult< int8_t, 2 > PadInt82dCustomPaddingTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
float m_PadValue
Optional value to use for padding, defaults to 0.
LayerTestResult< armnn::BFloat16, 2 > PadBFloat162dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::BFloat16, 4 > PadBFloat164dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 2 > PadQAsymmTestCommon(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset, const float customPaddingValue)
LayerTestResult< float, 2 > PadFloat322dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 4 > Pad4dTestCommon(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
void IgnoreUnused(Ts &&...)
LayerTestResult< armnn::BFloat16, 2 > PadBFloat162dCustomPaddingTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerDescriptor m_Parameters
LayerTestResult< uint8_t, 4 > PadUint84dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 3 > PadUint83dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 3 > Pad3dTestCommon(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
LayerTestResult< int8_t, 3 > PadInt83dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< uint8_t, 2 > PadUint82dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< float, 4 > PadFloat324dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 2 > PadUint82dCustomPaddingTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int8_t, 2 > PadInt8CustomPaddingAsymmTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::BFloat16, 3 > PadBFloat163dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 2 > PadFloat322dCustomPaddingTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< float, 3 > PadFloat323dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about TensorInfos of a layer.
LayerTestResult< int8_t, 2 > PadInt8AsymmTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int8_t, 2 > PadInt82dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
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