ArmNN
 20.02
SpaceToBatchNdTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
7 
8 #include <QuantizeHelper.hpp>
9 #include <ResolveType.hpp>
10 
11 
12 #include <armnnUtils/Permute.hpp>
13 
16 
17 #include <test/TensorHelpers.hpp>
18 
19 namespace
20 {
21 
22 template<typename T>
23 LayerTestResult<T, 4> SpaceToBatchNdTestImpl(
24  armnn::IWorkloadFactory& workloadFactory,
26  armnn::TensorInfo& inputTensorInfo,
27  armnn::TensorInfo& outputTensorInfo,
28  std::vector<float>& inputData,
29  std::vector<float>& outputExpectedData,
31  const float qScale = 1.0f,
32  const int32_t qOffset = 0)
33 {
34  IgnoreUnused(memoryManager);
35  const armnn::PermutationVector NCHWToNHWC = {0, 3, 1, 2};
37  {
38  inputTensorInfo = armnnUtils::Permuted(inputTensorInfo, NCHWToNHWC);
39  outputTensorInfo = armnnUtils::Permuted(outputTensorInfo, NCHWToNHWC);
40 
41  std::vector<float> inputTmp(inputData.size());
42  armnnUtils::Permute(inputTensorInfo.GetShape(), NCHWToNHWC,
43  inputData.data(), inputTmp.data(), sizeof(float));
44  inputData = inputTmp;
45 
46  std::vector<float> outputTmp(outputExpectedData.size());
47  armnnUtils::Permute(outputTensorInfo.GetShape(), NCHWToNHWC,
48  outputExpectedData.data(), outputTmp.data(), sizeof(float));
49  outputExpectedData = outputTmp;
50  }
51 
52  if(armnn::IsQuantizedType<T>())
53  {
54  inputTensorInfo.SetQuantizationScale(qScale);
55  inputTensorInfo.SetQuantizationOffset(qOffset);
56  outputTensorInfo.SetQuantizationScale(qScale);
57  outputTensorInfo.SetQuantizationOffset(qOffset);
58  }
59 
60  boost::multi_array<T, 4> input = MakeTensor<T, 4>(inputTensorInfo,
61  armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset));
62 
63  LayerTestResult<T, 4> ret(outputTensorInfo);
64  ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo,
65  armnnUtils::QuantizedVector<T>(outputExpectedData, qScale, qOffset));
66 
67  std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
68  std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
69 
71  AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
72  AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
73 
74  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSpaceToBatchNd(descriptor, info);
75 
76  inputHandle->Allocate();
77  outputHandle->Allocate();
78 
79  CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
80 
81  workload->Execute();
82 
83  CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
84 
85  return ret;
86 }
87 
88 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
89 LayerTestResult<T, 4> SpaceToBatchNdSimpleTest(
90  armnn::IWorkloadFactory& workloadFactory,
93 {
94  armnn::TensorInfo inputTensorInfo;
95  armnn::TensorInfo outputTensorInfo;
96 
97  unsigned int inputShape[] = {1, 1, 2, 2};
98  unsigned int outputShape[] = {4, 1, 1, 1};
99 
101  desc.m_Parameters.m_DataLayout = dataLayout;
102  desc.m_Parameters.m_BlockShape = {2, 2};
103  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
104 
105  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
106  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
107 
108  std::vector<float> input = std::vector<float>(
109  {
110  1.0f, 2.0f, 3.0f, 4.0f
111  });
112 
113  std::vector<float> outputExpected = std::vector<float>(
114  {
115  1.0f, 2.0f, 3.0f, 4.0f
116  });
117 
118  return SpaceToBatchNdTestImpl<T>(
119  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
120 }
121 
122 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
123 LayerTestResult<T, 4> SpaceToBatchNdMultiChannelsTest(
124  armnn::IWorkloadFactory& workloadFactory,
127 {
128  armnn::TensorInfo inputTensorInfo;
129  armnn::TensorInfo outputTensorInfo;
130 
131  unsigned int inputShape[] = {1, 3, 2, 2};
132  unsigned int outputShape[] = {4, 3, 1, 1};
133 
135  desc.m_Parameters.m_DataLayout = dataLayout;
136  desc.m_Parameters.m_BlockShape = {2, 2};
137  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
138 
139  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
140  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
141 
142  std::vector<float> input = std::vector<float>(
143  {
144  1.0f, 4.0f, 7.0f, 10.0f,
145  2.0f, 5.0, 8.0, 11.0f,
146  3.0f, 6.0f, 9.0f, 12.0f
147  });
148 
149  std::vector<float> outputExpected = std::vector<float>(
150  {
151  1.0f, 2.0f, 3.0f,
152  4.0f, 5.0f, 6.0f,
153  7.0f, 8.0f, 9.0f,
154  10.0f, 11.0f, 12.0f
155  });
156 
157  return SpaceToBatchNdTestImpl<T>(
158  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
159 }
160 
161 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
162 LayerTestResult<T, 4> SpaceToBatchNdMultiBlockTest(
163  armnn::IWorkloadFactory& workloadFactory,
166 {
167  armnn::TensorInfo inputTensorInfo;
168  armnn::TensorInfo outputTensorInfo;
169 
170  unsigned int inputShape[] = {1, 1, 4, 4};
171  unsigned int outputShape[] = {4, 1, 2, 2};
172 
174  desc.m_Parameters.m_DataLayout = dataLayout;
175  desc.m_Parameters.m_BlockShape = {2, 2};
176  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
177 
178  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
179  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
180 
181  std::vector<float> input = std::vector<float>(
182  {
183  1.0f, 2.0f, 3.0f, 4.0f,
184  5.0f, 6.0f, 7.0f, 8.0f,
185  9.0f, 10.0f, 11.0f, 12.0f,
186  13.0f, 14.0f, 15.0f, 16.0f
187  });
188 
189  std::vector<float> outputExpected = std::vector<float>(
190  {
191  1.0f, 3.0f, 9.0f, 11.0f,
192  2.0f, 4.0f, 10.0f, 12.0f,
193  5.0f, 7.0f, 13.0f, 15.0f,
194  6.0f, 8.0f, 14.0f, 16.0f
195  });
196 
197  return SpaceToBatchNdTestImpl<T>(
198  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
199 }
200 
201 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
202 LayerTestResult<T, 4> SpaceToBatchNdPaddingTest(
203  armnn::IWorkloadFactory& workloadFactory,
206 {
207  armnn::TensorInfo inputTensorInfo;
208  armnn::TensorInfo outputTensorInfo;
209 
210  unsigned int inputShape[] = {2, 1, 2, 4};
211  unsigned int outputShape[] = {8, 1, 1, 3};
212 
214  desc.m_Parameters.m_DataLayout = dataLayout;
215  desc.m_Parameters.m_BlockShape = {2, 2};
216  desc.m_Parameters.m_PadList = {{0, 0}, {2, 0}};
217 
218  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
219  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
220 
221  std::vector<float> input = std::vector<float>(
222  {
223  1.0f, 2.0f, 3.0f, 4.0f,
224  5.0f, 6.0f, 7.0f, 8.0f,
225  9.0f, 10.0f, 11.0f, 12.0f,
226  13.0f, 14.0f, 15.0f, 16.0f
227  });
228 
229  std::vector<float> outputExpected = std::vector<float>(
230  {
231  0.0f, 1.0f, 3.0f,
232  0.0f, 9.0f, 11.0f,
233  0.0f, 2.0f, 4.0f,
234  0.0f, 10.0f, 12.0f,
235  0.0f, 5.0f, 7.0f,
236  0.0f, 13.0f, 15.0f,
237  0.0f, 6.0f, 8.0f,
238  0.0f, 14.0f, 16.0f
239  });
240 
241  return SpaceToBatchNdTestImpl<T>(
242  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
243 }
244 
245 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
246 LayerTestResult<T, 4> SpaceToBatchNdSimpleNhwcTest(
247  armnn::IWorkloadFactory& workloadFactory,
249 {
250  return SpaceToBatchNdSimpleTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
251 }
252 
253 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
254 LayerTestResult<T, 4> SpaceToBatchNdMultiChannelsNhwcTest(
255  armnn::IWorkloadFactory& workloadFactory,
257 {
258  return SpaceToBatchNdMultiChannelsTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
259 }
260 
261 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
262 LayerTestResult<T, 4> SpaceToBatchNdMultiBlockNhwcTest(
263  armnn::IWorkloadFactory& workloadFactory,
265 {
266  return SpaceToBatchNdMultiBlockTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
267 }
268 
269 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
270 LayerTestResult<T, 4> SpaceToBatchNdPaddingNhwcTest(
271  armnn::IWorkloadFactory& workloadFactory,
273 {
274  return SpaceToBatchNdPaddingTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
275 }
276 
277 } // anonymous namespace
278 
280  armnn::IWorkloadFactory& workloadFactory,
282 {
283  return SpaceToBatchNdSimpleTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
284 }
285 
287  armnn::IWorkloadFactory& workloadFactory,
289 {
290  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
291 }
292 
294  armnn::IWorkloadFactory& workloadFactory,
296 {
297  return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
298 }
299 
301  armnn::IWorkloadFactory& workloadFactory,
303 {
304  return SpaceToBatchNdPaddingTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
305 }
306 
308  armnn::IWorkloadFactory& workloadFactory,
310 {
311  return SpaceToBatchNdSimpleTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
312 }
313 
315  armnn::IWorkloadFactory& workloadFactory,
317 {
318  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
319 }
320 
322  armnn::IWorkloadFactory& workloadFactory,
324 {
325  return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
326 }
327 
329  armnn::IWorkloadFactory& workloadFactory,
331 {
332  return SpaceToBatchNdPaddingTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
333 }
334 
336  armnn::IWorkloadFactory& workloadFactory,
338 {
339  return SpaceToBatchNdSimpleTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
340 }
341 
343  armnn::IWorkloadFactory& workloadFactory,
345 {
346  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
347 }
348 
350  armnn::IWorkloadFactory& workloadFactory,
352 {
353  return SpaceToBatchNdMultiBlockTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
354 }
355 
357  armnn::IWorkloadFactory& workloadFactory,
359 {
360  return SpaceToBatchNdPaddingTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
361 }
362 
364  armnn::IWorkloadFactory& workloadFactory,
366 {
367  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
368 }
369 
371  armnn::IWorkloadFactory& workloadFactory,
373 {
374  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
375 }
376 
378  armnn::IWorkloadFactory& workloadFactory,
380 {
381  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
382 }
383 
385  armnn::IWorkloadFactory& workloadFactory,
387 {
388  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
389 }
390 
392  armnn::IWorkloadFactory& workloadFactory,
394 {
395  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
396 }
397 
399  armnn::IWorkloadFactory& workloadFactory,
401 {
402  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
403 }
404 
406  armnn::IWorkloadFactory& workloadFactory,
408 {
409  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
410 }
411 
413  armnn::IWorkloadFactory& workloadFactory,
415 {
416  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
417 }
418 
420  armnn::IWorkloadFactory& workloadFactory,
422 {
423  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
424 }
425 
427  armnn::IWorkloadFactory& workloadFactory,
429 {
430  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
431 }
432 
434  armnn::IWorkloadFactory& workloadFactory,
436 {
437  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
438 }
439 
441  armnn::IWorkloadFactory& workloadFactory,
443 {
444  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
445 }
446 
448  armnn::IWorkloadFactory& workloadFactory,
450 {
451  return SpaceToBatchNdSimpleTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
452 }
453 
455  armnn::IWorkloadFactory& workloadFactory,
457 {
458  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
459 }
460 
462  armnn::IWorkloadFactory& workloadFactory,
464 {
465  return SpaceToBatchNdMultiBlockTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
466 }
467 
469  armnn::IWorkloadFactory& workloadFactory,
471 {
472  return SpaceToBatchNdPaddingTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
473 }
474 
476  armnn::IWorkloadFactory& workloadFactory,
478 {
479  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
480 }
481 
483  armnn::IWorkloadFactory& workloadFactory,
485 {
486  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
487 }
488 
490  armnn::IWorkloadFactory& workloadFactory,
492 {
493  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
494 }
495 
497  armnn::IWorkloadFactory& workloadFactory,
499 {
500  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
501 }
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiBlockFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
DataLayout
Definition: Types.hpp:49
const TensorShape & GetShape() const
Definition: Tensor.hpp:88
LayerTestResult< uint8_t, 4 > SpaceToBatchNdSimpleNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdPaddingNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiChannelsNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiChannelsUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdPaddingUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< float, 4 > SpaceToBatchNdMultiChannelsNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
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}.
LayerTestResult< float, 4 > SpaceToBatchNdSimpleFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
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)
Definition: Permute.cpp:121
LayerTestResult< float, 4 > SpaceToBatchNdMultiBlockFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdPaddingFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< IWorkload > CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor &descriptor, const WorkloadInfo &info) const
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdSimpleFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiBlockNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiChannelsNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdPaddingUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void SetQuantizationScale(float scale)
Definition: Tensor.cpp:259
std::vector< unsigned int > m_BlockShape
Block shape value.
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiChannelsNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdPaddingNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdSimpleNhwcFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiChannelsUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdPaddingNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiBlockNhwcUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiBlockUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdMultiBlockNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 4 > SpaceToBatchNdSimpleNhwcUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< float, 4 > SpaceToBatchNdMultiBlockNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdMultiBlockUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< float, 4 > SpaceToBatchNdSimpleNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Contains information about inputs and outputs to a layer.
void SetQuantizationOffset(int32_t offset)
Definition: Tensor.cpp:275
LayerTestResult< float, 4 > SpaceToBatchNdPaddingFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< float, 4 > SpaceToBatchNdMultiChannelsFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< armnn::Half, 4 > SpaceToBatchNdMultiChannelsFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
armnn::TensorShape Permuted(const armnn::TensorShape &srcShape, const armnn::PermutationVector &mappings)
Definition: Permute.cpp:98
LayerTestResult< float, 4 > SpaceToBatchNdPaddingNhwcFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< int16_t, 4 > SpaceToBatchNdSimpleUint16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 4 > SpaceToBatchNdSimpleUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)