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 std::vector<T> input = armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset);
50 std::vector<T> expectedOutput = armnnUtils::QuantizedVector<T>(expectedOutputData, qScale, qOffset);
53 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.
CreateTensorHandle(inputInfo);
54 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.
CreateTensorHandle(outputInfo);
58 AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get());
59 AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get());
61 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateDepthToSpace(descriptor, info);
63 inputHandle->Allocate();
64 outputHandle->Allocate();
74 outputHandle->GetShape(),
80 template<armnn::DataType ArmnnType,
typename T>
86 unsigned int inputShape[] = { 1, 1, 1, 8 };
87 unsigned int outputShape[] = { 1, 2, 2, 2 };
96 std::vector<float> input = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
97 std::vector<float> expectedOutput = input;
106 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
109 template<armnn::DataType ArmnnType,
typename T>
115 unsigned int inputShape[] = { 1, 2, 2, 4 };
116 unsigned int outputShape[] = { 1, 4, 4, 1 };
130 std::vector<float> input =
136 9.f, 10.f, 11.f, 12.f,
138 13.f, 14.f, 15.f, 16.f
141 std::vector<float> expectedOutput
145 9.f, 10.f, 13.f, 14.f,
146 11.f, 12.f, 15.f, 16.f
156 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
159 template<armnn::DataType ArmnnType,
typename T>
165 unsigned int inputShape[] = { 2, 1, 1, 4 };
166 unsigned int outputShape[] = { 2, 2, 2, 1 };
168 std::vector<float> input =
174 std::vector<float> expectedOutput = input;
183 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
186 template<armnn::DataType ArmnnType,
typename T>
192 unsigned int inputShape[] = { 2, 2, 2, 4 };
193 unsigned int outputShape[] = { 2, 4, 4, 1 };
195 std::vector<float> input =
201 9.f, 10.f, 11.f, 12.f,
203 13.f, 14.f, 15.f, 16.f,
206 17.f, 18.f, 19.f, 20.f,
208 21.f, 22.f, 23.f, 24.f,
210 25.f, 26.f, 27.f, 28.f,
212 29.f, 30.f, 31.f, 32.f
215 std::vector<float> expectedOutput
219 9.f, 10.f, 13.f, 14.f,
220 11.f, 12.f, 15.f, 16.f,
223 17.f, 18.f, 21.f, 22.f,
224 19.f, 20.f, 23.f, 24.f,
225 25.f, 26.f, 29.f, 30.f,
226 27.f, 28.f, 31.f, 32.f
236 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
241 DepthToSpaceTest1<armnn::DataType::Float32>(
246 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
247 DepthToSpaceTest2<armnn::DataType::Float32>(
252 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
253 DepthToSpaceTest3<armnn::DataType::Float32>(
258 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
259 DepthToSpaceTest4<armnn::DataType::Float32>(
266 DepthToSpaceTest1<armnn::DataType::Float16>(
271 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
272 DepthToSpaceTest2<armnn::DataType::Float16>(
277 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
278 DepthToSpaceTest3<armnn::DataType::Float16>(
283 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
284 DepthToSpaceTest4<armnn::DataType::Float16>(
291 DepthToSpaceTest1<armnn::DataType::QAsymmU8>(
296 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
297 DepthToSpaceTest2<armnn::DataType::QAsymmU8>(
302 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
303 DepthToSpaceTest3<armnn::DataType::QAsymmU8>(
308 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
309 DepthToSpaceTest4<armnn::DataType::QAsymmU8>(
316 DepthToSpaceTest1<armnn::DataType::QAsymmS8>(
321 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
322 DepthToSpaceTest2<armnn::DataType::QAsymmS8>(
327 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
328 DepthToSpaceTest3<armnn::DataType::QAsymmS8>(
333 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
334 DepthToSpaceTest4<armnn::DataType::QAsymmS8>(
341 DepthToSpaceTest1<armnn::DataType::QSymmS16>(
346 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
347 DepthToSpaceTest2<armnn::DataType::QSymmS16>(
352 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
353 DepthToSpaceTest3<armnn::DataType::QSymmS16>(
358 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
359 DepthToSpaceTest4<armnn::DataType::QSymmS16>(
const TensorShape & GetShape() const
#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 TensorInfos of a layer.
void SetQuantizationOffset(int32_t offset)
LayerTestResult< T, 4 > DepthToSpaceTest1(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
unsigned int GetNumElements() const
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)