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());
75 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreatePad(descriptor, info);
77 inputHandle->Allocate();
78 outputHandle->Allocate();
82 workload->PostAllocationConfigure();
89 outputHandle->GetShape(),
93 template<armnn::DataType ArmnnType,
typename T>
106 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
108 std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
120 std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
144 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
145 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
149 std::vector<std::pair<unsigned int, unsigned int>> PadList;
150 PadList.push_back(std::pair<unsigned int, unsigned int>(0,1));
151 PadList.push_back(std::pair<unsigned int, unsigned int>(2,1));
152 PadList.push_back(std::pair<unsigned int, unsigned int>(2,2));
157 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
158 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
160 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreatePad(descriptor, info);
162 inputHandle->Allocate();
163 outputHandle->Allocate();
167 workload->PostAllocationConfigure();
173 expectedOutputValues,
174 outputHandle->GetShape(),
178 template<armnn::DataType ArmnnType,
typename T>
191 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
193 std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
217 std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
383 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
384 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
388 std::vector<std::pair<unsigned int, unsigned int>> PadList;
389 PadList.push_back(std::pair<unsigned int, unsigned int>(1,1));
390 PadList.push_back(std::pair<unsigned int, unsigned int>(2,1));
391 PadList.push_back(std::pair<unsigned int, unsigned int>(3,1));
392 PadList.push_back(std::pair<unsigned int, unsigned int>(1,1));
397 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
398 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
400 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreatePad(descriptor, info);
402 inputHandle->Allocate();
403 outputHandle->Allocate();
407 workload->PostAllocationConfigure();
413 expectedOutputValues,
414 outputHandle->GetShape(),
418 template<armnn::DataType ArmnnType,
typename T>
425 const float customPaddingValue)
432 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
434 std::vector<T> inputValues =
442 T p =
static_cast<T
>(customPaddingValue);
443 std::vector<T> expectedOutputValues =
456 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
457 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
462 std::vector<std::pair<unsigned int, unsigned int>> padList;
463 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
464 padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
470 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
471 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
473 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreatePad(descriptor, info);
475 inputHandle->Allocate();
476 outputHandle->Allocate();
480 workload->PostAllocationConfigure();
486 expectedOutputValues,
487 outputHandle->GetShape(),
496 Pad2dTestCommon<armnn::DataType::QSymmS16>(
502 const float customPaddingValue);
505 Pad3dTestCommon<armnn::DataType::QSymmS16>(
513 Pad4dTestCommon<armnn::DataType::QSymmS16>(
521 PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
527 const float customPaddingValue);
530 PadQAsymmTestCommon<armnn::DataType::QAsymmU8>(
536 const float customPaddingValue);
547 return Pad2dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
555 return Pad2dTestCommon<armnn::DataType::QAsymmU8>(
556 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0, 1.0f);
564 return Pad3dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
572 return Pad4dTestCommon<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
580 return Pad2dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
588 return Pad2dTestCommon<armnn::DataType::Float32>(
589 workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0, 1.0f);
597 return Pad3dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
605 return Pad4dTestCommon<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
613 return Pad2dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
621 return Pad2dTestCommon<armnn::DataType::BFloat16>(
622 workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0, 1.0f);
630 return Pad3dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
638 return Pad4dTestCommon<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
646 return Pad2dTestCommon<armnn::DataType::QSymmS8>(
647 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
655 return Pad2dTestCommon<armnn::DataType::QSymmS8>(
656 workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0, 1.0f);
664 return Pad3dTestCommon<armnn::DataType::QSymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
672 return Pad4dTestCommon<armnn::DataType::QSymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 1.0f, 0);
680 return PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
681 workloadFactory, memoryManager, tensorHandleFactory, 2.0f, 2);
689 return PadQAsymmTestCommon<armnn::DataType::QAsymmS8>(
690 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)
virtual std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &descriptor, const WorkloadInfo &Info) const
LayerTestResult< float, 4 > PadFloat324dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
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)
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< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)