26 std::vector<float>& inputData,
27 std::vector<float>& expectedOutputData,
29 const float qScale = 1.0f,
30 const int32_t qOffset = 0)
35 PermuteTensorNhwcToNchw<float>(inputInfo, inputData);
36 PermuteTensorNhwcToNchw<float>(outputInfo, expectedOutputData);
39 if(armnn::IsQuantizedType<T>())
47 boost::multi_array<T, 4> input =
48 MakeTensor<T, 4>(inputInfo, armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset));
51 result.outputExpected =
52 MakeTensor<T, 4>(outputInfo, armnnUtils::QuantizedVector<T>(expectedOutputData, qScale, qOffset));
55 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.
CreateTensorHandle(inputInfo);
56 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.
CreateTensorHandle(outputInfo);
60 AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get());
61 AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get());
63 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateDepthToSpace(descriptor, info);
65 inputHandle->Allocate();
66 outputHandle->Allocate();
78 template<armnn::DataType ArmnnType,
typename T>
84 unsigned int inputShape[] = { 1, 1, 1, 8 };
85 unsigned int outputShape[] = { 1, 2, 2, 2 };
94 std::vector<float> input = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
95 std::vector<float> expectedOutput = input;
104 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
107 template<armnn::DataType ArmnnType,
typename T>
113 unsigned int inputShape[] = { 1, 2, 2, 4 };
114 unsigned int outputShape[] = { 1, 4, 4, 1 };
128 std::vector<float> input =
134 9.f, 10.f, 11.f, 12.f,
136 13.f, 14.f, 15.f, 16.f
139 std::vector<float> expectedOutput
143 9.f, 10.f, 13.f, 14.f,
144 11.f, 12.f, 15.f, 16.f
154 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
157 template<armnn::DataType ArmnnType,
typename T>
163 unsigned int inputShape[] = { 2, 1, 1, 4 };
164 unsigned int outputShape[] = { 2, 2, 2, 1 };
166 std::vector<float> input =
172 std::vector<float> expectedOutput = input;
181 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
184 template<armnn::DataType ArmnnType,
typename T>
190 unsigned int inputShape[] = { 2, 2, 2, 4 };
191 unsigned int outputShape[] = { 2, 4, 4, 1 };
193 std::vector<float> input =
199 9.f, 10.f, 11.f, 12.f,
201 13.f, 14.f, 15.f, 16.f,
204 17.f, 18.f, 19.f, 20.f,
206 21.f, 22.f, 23.f, 24.f,
208 25.f, 26.f, 27.f, 28.f,
210 29.f, 30.f, 31.f, 32.f
213 std::vector<float> expectedOutput
217 9.f, 10.f, 13.f, 14.f,
218 11.f, 12.f, 15.f, 16.f,
221 17.f, 18.f, 21.f, 22.f,
222 19.f, 20.f, 23.f, 24.f,
223 25.f, 26.f, 29.f, 30.f,
224 27.f, 28.f, 31.f, 32.f
234 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
239 DepthToSpaceTest1<armnn::DataType::Float32>(
244 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
245 DepthToSpaceTest2<armnn::DataType::Float32>(
250 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
251 DepthToSpaceTest3<armnn::DataType::Float32>(
256 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
257 DepthToSpaceTest4<armnn::DataType::Float32>(
264 DepthToSpaceTest1<armnn::DataType::Float16>(
269 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
270 DepthToSpaceTest2<armnn::DataType::Float16>(
275 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
276 DepthToSpaceTest3<armnn::DataType::Float16>(
281 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
282 DepthToSpaceTest4<armnn::DataType::Float16>(
289 DepthToSpaceTest1<armnn::DataType::QAsymmU8>(
294 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
295 DepthToSpaceTest2<armnn::DataType::QAsymmU8>(
300 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
301 DepthToSpaceTest3<armnn::DataType::QAsymmU8>(
306 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
307 DepthToSpaceTest4<armnn::DataType::QAsymmU8>(
314 DepthToSpaceTest1<armnn::DataType::QAsymmS8>(
319 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
320 DepthToSpaceTest2<armnn::DataType::QAsymmS8>(
325 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
326 DepthToSpaceTest3<armnn::DataType::QAsymmS8>(
331 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
332 DepthToSpaceTest4<armnn::DataType::QAsymmS8>(
339 DepthToSpaceTest1<armnn::DataType::QSymmS16>(
344 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
345 DepthToSpaceTest2<armnn::DataType::QSymmS16>(
350 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
351 DepthToSpaceTest3<armnn::DataType::QSymmS16>(
356 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
357 DepthToSpaceTest4<armnn::DataType::QSymmS16>(
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
void IgnoreUnused(Ts &&...)
LayerDescriptor m_Parameters
LayerTestResult< T, 4 > DepthToSpaceTest3(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > DepthToSpaceTest4(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
#define ARMNN_NO_DEPRECATE_WARN_END
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void SetQuantizationScale(float scale)
LayerTestResult< T, 4 > DepthToSpaceTest2(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
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).
virtual std::unique_ptr< IWorkload > CreateDepthToSpace(const DepthToSpaceQueueDescriptor &descriptor, const WorkloadInfo &info) const
Contains information about inputs and outputs to a layer.
void SetQuantizationOffset(int32_t offset)
LayerTestResult< T, 4 > DepthToSpaceTest1(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)