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());
65 inputHandle->Allocate();
66 outputHandle->Allocate();
76 outputHandle->GetShape(),
82 template<armnn::DataType ArmnnType,
typename T>
88 unsigned int inputShape[] = { 1, 1, 1, 8 };
89 unsigned int outputShape[] = { 1, 2, 2, 2 };
98 std::vector<float> input = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
99 std::vector<float> expectedOutput = input;
108 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
111 template<armnn::DataType ArmnnType,
typename T>
117 unsigned int inputShape[] = { 1, 2, 2, 4 };
118 unsigned int outputShape[] = { 1, 4, 4, 1 };
132 std::vector<float> input =
138 9.f, 10.f, 11.f, 12.f,
140 13.f, 14.f, 15.f, 16.f
143 std::vector<float> expectedOutput
147 9.f, 10.f, 13.f, 14.f,
148 11.f, 12.f, 15.f, 16.f
158 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
161 template<armnn::DataType ArmnnType,
typename T>
167 unsigned int inputShape[] = { 2, 1, 1, 4 };
168 unsigned int outputShape[] = { 2, 2, 2, 1 };
170 std::vector<float> input =
176 std::vector<float> expectedOutput = input;
185 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
188 template<armnn::DataType ArmnnType,
typename T>
194 unsigned int inputShape[] = { 2, 2, 2, 4 };
195 unsigned int outputShape[] = { 2, 4, 4, 1 };
197 std::vector<float> input =
203 9.f, 10.f, 11.f, 12.f,
205 13.f, 14.f, 15.f, 16.f,
208 17.f, 18.f, 19.f, 20.f,
210 21.f, 22.f, 23.f, 24.f,
212 25.f, 26.f, 27.f, 28.f,
214 29.f, 30.f, 31.f, 32.f
217 std::vector<float> expectedOutput
221 9.f, 10.f, 13.f, 14.f,
222 11.f, 12.f, 15.f, 16.f,
225 17.f, 18.f, 21.f, 22.f,
226 19.f, 20.f, 23.f, 24.f,
227 25.f, 26.f, 29.f, 30.f,
228 27.f, 28.f, 31.f, 32.f
238 return DepthToSpaceTestImpl<T>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
243 DepthToSpaceTest1<armnn::DataType::Float32>(
248 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
249 DepthToSpaceTest2<armnn::DataType::Float32>(
254 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
255 DepthToSpaceTest3<armnn::DataType::Float32>(
260 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
261 DepthToSpaceTest4<armnn::DataType::Float32>(
268 DepthToSpaceTest1<armnn::DataType::Float16>(
273 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
274 DepthToSpaceTest2<armnn::DataType::Float16>(
279 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
280 DepthToSpaceTest3<armnn::DataType::Float16>(
285 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
286 DepthToSpaceTest4<armnn::DataType::Float16>(
293 DepthToSpaceTest1<armnn::DataType::QAsymmU8>(
298 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
299 DepthToSpaceTest2<armnn::DataType::QAsymmU8>(
304 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
305 DepthToSpaceTest3<armnn::DataType::QAsymmU8>(
310 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
311 DepthToSpaceTest4<armnn::DataType::QAsymmU8>(
318 DepthToSpaceTest1<armnn::DataType::QAsymmS8>(
323 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
324 DepthToSpaceTest2<armnn::DataType::QAsymmS8>(
329 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
330 DepthToSpaceTest3<armnn::DataType::QAsymmS8>(
335 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
336 DepthToSpaceTest4<armnn::DataType::QAsymmS8>(
343 DepthToSpaceTest1<armnn::DataType::QSymmS16>(
348 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
349 DepthToSpaceTest2<armnn::DataType::QSymmS16>(
354 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
355 DepthToSpaceTest3<armnn::DataType::QSymmS16>(
360 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
361 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 CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
void SetQuantizationScale(float scale)
LayerTestResult< T, 4 > DepthToSpaceTest2(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::DataLayout dataLayout)
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).
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
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)
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const
unsigned int GetNumElements() const