29 std::vector<float>& inputData,
30 std::vector<float>& outputExpectedData,
32 const float qScale = 1.0f,
33 const int32_t qOffset = 0)
43 std::vector<float> inputTmp(inputData.size());
45 inputData.data(), inputTmp.data(),
sizeof(float));
48 std::vector<float> outputTmp(outputExpectedData.size());
50 outputExpectedData.data(), outputTmp.data(),
sizeof(float));
51 outputExpectedData = outputTmp;
54 if(armnn::IsQuantizedType<T>())
62 std::vector<T> input = armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset);
63 std::vector<T> expectedOutput = armnnUtils::QuantizedVector<T>(outputExpectedData, qScale, qOffset);
66 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
67 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
70 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
71 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
77 inputHandle->Allocate();
78 outputHandle->Allocate();
88 outputHandle->GetShape(),
92 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
99 unsigned int inputShape[] = {1, 2, 2, 1};
100 unsigned int outputShape[] = {1, 1, 1, 4};
102 std::vector<float> input = std::vector<float>(
104 1.0f, 2.0f, 3.0f, 4.0f
107 std::vector<float> outputExpected = std::vector<float>(
109 1.0f, 2.0f, 3.0f, 4.0f
122 return SpaceToDepthTestImpl<T>(
123 workloadFactory, memoryManager, tensorHandleFactory,
124 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
127 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
134 unsigned int inputShape[] = {1, 2, 2, 2};
135 unsigned int outputShape[] = {1, 1, 1, 8};
137 std::vector<float> input = std::vector<float>(
139 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
142 std::vector<float> outputExpected = std::vector<float>(
144 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
157 return SpaceToDepthTestImpl<T>(
158 workloadFactory, memoryManager, tensorHandleFactory,
159 inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
169 return SpaceToDepthSimpleTest1<armnn::DataType::QAsymmU8>(
172 tensorHandleFactory);
180 return SpaceToDepthSimpleTest1<armnn::DataType::QAsymmU8>(
192 return SpaceToDepthSimpleTest1<armnn::DataType::Float16>(
195 tensorHandleFactory);
203 return SpaceToDepthSimpleTest1<armnn::DataType::Float16>(
215 return SpaceToDepthSimpleTest1<armnn::DataType::Float32>(
218 tensorHandleFactory);
226 return SpaceToDepthSimpleTest1<armnn::DataType::Float32>(
238 return SpaceToDepthSimpleTest2<armnn::DataType::Float32>(
241 tensorHandleFactory);
249 return SpaceToDepthSimpleTest2<armnn::DataType::Float32>(
261 return SpaceToDepthSimpleTest2<armnn::DataType::QSymmS16>(
264 tensorHandleFactory);
272 return SpaceToDepthSimpleTest2<armnn::DataType::QSymmS16>(
LayerTestResult< int16_t, 4 > SpaceToDepthNhwcQSymm16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SpaceToDepthNchwFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
const TensorShape & GetShape() const
LayerTestResult< int16_t, 4 > SpaceToDepthNchwQSymm16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void IgnoreUnused(Ts &&...)
LayerDescriptor m_Parameters
void Permute(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
LayerTestResult< uint8_t, 4 > SpaceToDepthNchwAsymmQ8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SpaceToDepthNhwcFloat32Test1(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
void SetQuantizationScale(float scale)
LayerTestResult< armnn::Half, 4 > SpaceToDepthNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
unsigned int m_BlockSize
Scalar specifying the input block size. It must be >= 1.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< float, 4 > SpaceToDepthNhwcFloat32Test2(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about TensorInfos of a layer.
void SetQuantizationOffset(int32_t offset)
LayerTestResult< float, 4 > SpaceToDepthNchwFloat32Test1(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< float, 4 > SpaceToDepthNchwFloat32Test2(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SpaceToDepthNhwcAsymmQ8Test(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