29 std::vector<float>& inputData,
30 std::vector<float>& outputExpectedData,
32 const float qScale = 1.0f,
33 const int32_t qOffset = 0)
42 std::vector<float> inputTmp(inputData.size());
44 inputData.data(), inputTmp.data(),
sizeof(float));
47 std::vector<float> outputTmp(outputExpectedData.size());
49 outputExpectedData.data(), outputTmp.data(),
sizeof(float));
50 outputExpectedData = outputTmp;
53 if(armnn::IsQuantizedType<T>())
61 std::vector<T> input = armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset);
62 std::vector<T> expectedOutput = armnnUtils::QuantizedVector<T>(outputExpectedData, qScale, qOffset);
65 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
66 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
69 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
70 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
76 inputHandle->Allocate();
77 outputHandle->Allocate();
87 outputHandle->GetShape(),
91 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
101 unsigned int inputShape[] = {1, 1, 2, 2};
102 unsigned int outputShape[] = {4, 1, 1, 1};
112 std::vector<float> input = std::vector<float>(
114 1.0f, 2.0f, 3.0f, 4.0f
117 std::vector<float> outputExpected = std::vector<float>(
119 1.0f, 2.0f, 3.0f, 4.0f
122 return SpaceToBatchNdTestImpl<T>(
123 workloadFactory, memoryManager, tensorHandleFactory,
124 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
127 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
137 unsigned int inputShape[] = {1, 3, 2, 2};
138 unsigned int outputShape[] = {4, 3, 1, 1};
148 std::vector<float> input = std::vector<float>(
150 1.0f, 4.0f, 7.0f, 10.0f,
151 2.0f, 5.0, 8.0, 11.0f,
152 3.0f, 6.0f, 9.0f, 12.0f
155 std::vector<float> outputExpected = std::vector<float>(
163 return SpaceToBatchNdTestImpl<T>(
164 workloadFactory, memoryManager, tensorHandleFactory,
165 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
168 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
178 unsigned int inputShape[] = {1, 1, 4, 4};
179 unsigned int outputShape[] = {4, 1, 2, 2};
189 std::vector<float> input = std::vector<float>(
191 1.0f, 2.0f, 3.0f, 4.0f,
192 5.0f, 6.0f, 7.0f, 8.0f,
193 9.0f, 10.0f, 11.0f, 12.0f,
194 13.0f, 14.0f, 15.0f, 16.0f
197 std::vector<float> outputExpected = std::vector<float>(
199 1.0f, 3.0f, 9.0f, 11.0f,
200 2.0f, 4.0f, 10.0f, 12.0f,
201 5.0f, 7.0f, 13.0f, 15.0f,
202 6.0f, 8.0f, 14.0f, 16.0f
205 return SpaceToBatchNdTestImpl<T>(
206 workloadFactory, memoryManager, tensorHandleFactory,
207 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
210 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
220 unsigned int inputShape[] = {2, 1, 2, 4};
221 unsigned int outputShape[] = {8, 1, 1, 3};
231 std::vector<float> input = std::vector<float>(
233 1.0f, 2.0f, 3.0f, 4.0f,
234 5.0f, 6.0f, 7.0f, 8.0f,
235 9.0f, 10.0f, 11.0f, 12.0f,
236 13.0f, 14.0f, 15.0f, 16.0f
239 std::vector<float> outputExpected = std::vector<float>(
251 return SpaceToBatchNdTestImpl<T>(
252 workloadFactory, memoryManager, tensorHandleFactory,
253 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
256 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
262 return SpaceToBatchNdSimpleTest<ArmnnType>(workloadFactory,
268 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
274 return SpaceToBatchNdMultiChannelsTest<ArmnnType>(workloadFactory,
280 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
286 return SpaceToBatchNdMultiBlockTest<ArmnnType>(workloadFactory,
292 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
298 return SpaceToBatchNdPaddingTest<ArmnnType>(workloadFactory,
311 return SpaceToBatchNdSimpleTest<armnn::DataType::Float32>(workloadFactory,
313 tensorHandleFactory);
321 return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float32>(workloadFactory,
323 tensorHandleFactory);
331 return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float32>(workloadFactory,
333 tensorHandleFactory);
341 return SpaceToBatchNdPaddingTest<armnn::DataType::Float32>(workloadFactory,
343 tensorHandleFactory);
351 return SpaceToBatchNdSimpleTest<armnn::DataType::Float16>(workloadFactory,
353 tensorHandleFactory);
361 return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float16>(workloadFactory,
363 tensorHandleFactory);
371 return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float16>(workloadFactory,
373 tensorHandleFactory);
381 return SpaceToBatchNdPaddingTest<armnn::DataType::Float16>(workloadFactory,
383 tensorHandleFactory);
391 return SpaceToBatchNdSimpleTest<armnn::DataType::QAsymmU8>(workloadFactory,
393 tensorHandleFactory);
401 return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QAsymmU8>(workloadFactory,
403 tensorHandleFactory);
411 return SpaceToBatchNdMultiBlockTest<armnn::DataType::QAsymmU8>(workloadFactory,
413 tensorHandleFactory);
421 return SpaceToBatchNdPaddingTest<armnn::DataType::QAsymmU8>(workloadFactory,
423 tensorHandleFactory);
431 return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float32>(workloadFactory,
433 tensorHandleFactory);
441 return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float32>(workloadFactory,
443 tensorHandleFactory);
451 return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float32>(workloadFactory,
453 tensorHandleFactory);
461 return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float32>(workloadFactory,
463 tensorHandleFactory);
471 return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float16>(workloadFactory,
473 tensorHandleFactory);
481 return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float16>(workloadFactory,
483 tensorHandleFactory);
491 return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float16>(workloadFactory,
493 tensorHandleFactory);
501 return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float16>(workloadFactory,
503 tensorHandleFactory);
511 return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory,
513 tensorHandleFactory);
521 return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory,
523 tensorHandleFactory);
531 return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory,
533 tensorHandleFactory);
541 return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory,
543 tensorHandleFactory);
551 return SpaceToBatchNdSimpleTest<armnn::DataType::QSymmS16>(workloadFactory,
553 tensorHandleFactory);
561 return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QSymmS16>(workloadFactory,
563 tensorHandleFactory);
571 return SpaceToBatchNdMultiBlockTest<armnn::DataType::QSymmS16>(workloadFactory,
573 tensorHandleFactory);
581 return SpaceToBatchNdPaddingTest<armnn::DataType::QSymmS16>(workloadFactory,
583 tensorHandleFactory);
591 return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QSymmS16>(workloadFactory,
593 tensorHandleFactory);
601 return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QSymmS16>(workloadFactory,
603 tensorHandleFactory);
611 return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QSymmS16>(workloadFactory,
613 tensorHandleFactory);
621 return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QSymmS16>(workloadFactory,
623 tensorHandleFactory);
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiChannelsNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdPaddingUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
const TensorShape & GetShape() const
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiBlockNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiChannelsNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdSimpleNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiBlockFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiChannelsUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiBlockNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void IgnoreUnused(Ts &&...)
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding values for the input dimension: heightPad{top, bottom} widthPad{left, right}.
LayerDescriptor m_Parameters
LayerTestResult< uint8_t, 4 > SpaceToBatchNdPaddingNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiChannelsUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdPaddingUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
void Permute(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiBlockUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< float, 4 > SpaceToBatchNdSimpleNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdPaddingFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void SetQuantizationScale(float scale)
std::vector< unsigned int > m_BlockShape
Block shape value.
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiChannelsNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdPaddingNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToBatchNdSimpleFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiBlockNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdSimpleUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiBlockUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToBatchNdPaddingNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdSimpleNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToBatchNdMultiBlockFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdPaddingNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about TensorInfos of a layer.
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdSimpleFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void SetQuantizationOffset(int32_t offset)
LayerTestResult< float, 4 > SpaceToBatchNdMultiBlockNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdSimpleNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToBatchNdMultiChannelsFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToBatchNdPaddingFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiChannelsFloat16Test(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
LayerTestResult< uint8_t, 4 > SpaceToBatchNdSimpleUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
armnn::TensorShape Permuted(const armnn::TensorShape &srcShape, const armnn::PermutationVector &mappings)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
LayerTestResult< float, 4 > SpaceToBatchNdMultiChannelsNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)