ArmNN
 20.08
SpaceToBatchNdTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. 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 
68  std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
69  std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
71 
73  AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
74  AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
75 
76  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSpaceToBatchNd(descriptor, info);
77 
78  inputHandle->Allocate();
79  outputHandle->Allocate();
80 
81  CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
82 
83  workload->Execute();
84 
85  CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
86 
87  return ret;
88 }
89 
90 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
91 LayerTestResult<T, 4> SpaceToBatchNdSimpleTest(
92  armnn::IWorkloadFactory& workloadFactory,
95 {
96  armnn::TensorInfo inputTensorInfo;
97  armnn::TensorInfo outputTensorInfo;
98 
99  unsigned int inputShape[] = {1, 1, 2, 2};
100  unsigned int outputShape[] = {4, 1, 1, 1};
101 
103  desc.m_Parameters.m_DataLayout = dataLayout;
104  desc.m_Parameters.m_BlockShape = {2, 2};
105  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
106 
107  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
108  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
109 
110  std::vector<float> input = std::vector<float>(
111  {
112  1.0f, 2.0f, 3.0f, 4.0f
113  });
114 
115  std::vector<float> outputExpected = std::vector<float>(
116  {
117  1.0f, 2.0f, 3.0f, 4.0f
118  });
119 
120  return SpaceToBatchNdTestImpl<T>(
121  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
122 }
123 
124 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
125 LayerTestResult<T, 4> SpaceToBatchNdMultiChannelsTest(
126  armnn::IWorkloadFactory& workloadFactory,
129 {
130  armnn::TensorInfo inputTensorInfo;
131  armnn::TensorInfo outputTensorInfo;
132 
133  unsigned int inputShape[] = {1, 3, 2, 2};
134  unsigned int outputShape[] = {4, 3, 1, 1};
135 
137  desc.m_Parameters.m_DataLayout = dataLayout;
138  desc.m_Parameters.m_BlockShape = {2, 2};
139  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
140 
141  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
142  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
143 
144  std::vector<float> input = std::vector<float>(
145  {
146  1.0f, 4.0f, 7.0f, 10.0f,
147  2.0f, 5.0, 8.0, 11.0f,
148  3.0f, 6.0f, 9.0f, 12.0f
149  });
150 
151  std::vector<float> outputExpected = std::vector<float>(
152  {
153  1.0f, 2.0f, 3.0f,
154  4.0f, 5.0f, 6.0f,
155  7.0f, 8.0f, 9.0f,
156  10.0f, 11.0f, 12.0f
157  });
158 
159  return SpaceToBatchNdTestImpl<T>(
160  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
161 }
162 
163 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
164 LayerTestResult<T, 4> SpaceToBatchNdMultiBlockTest(
165  armnn::IWorkloadFactory& workloadFactory,
168 {
169  armnn::TensorInfo inputTensorInfo;
170  armnn::TensorInfo outputTensorInfo;
171 
172  unsigned int inputShape[] = {1, 1, 4, 4};
173  unsigned int outputShape[] = {4, 1, 2, 2};
174 
176  desc.m_Parameters.m_DataLayout = dataLayout;
177  desc.m_Parameters.m_BlockShape = {2, 2};
178  desc.m_Parameters.m_PadList = {{0, 0}, {0, 0}};
179 
180  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
181  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
182 
183  std::vector<float> input = std::vector<float>(
184  {
185  1.0f, 2.0f, 3.0f, 4.0f,
186  5.0f, 6.0f, 7.0f, 8.0f,
187  9.0f, 10.0f, 11.0f, 12.0f,
188  13.0f, 14.0f, 15.0f, 16.0f
189  });
190 
191  std::vector<float> outputExpected = std::vector<float>(
192  {
193  1.0f, 3.0f, 9.0f, 11.0f,
194  2.0f, 4.0f, 10.0f, 12.0f,
195  5.0f, 7.0f, 13.0f, 15.0f,
196  6.0f, 8.0f, 14.0f, 16.0f
197  });
198 
199  return SpaceToBatchNdTestImpl<T>(
200  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
201 }
202 
203 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
204 LayerTestResult<T, 4> SpaceToBatchNdPaddingTest(
205  armnn::IWorkloadFactory& workloadFactory,
208 {
209  armnn::TensorInfo inputTensorInfo;
210  armnn::TensorInfo outputTensorInfo;
211 
212  unsigned int inputShape[] = {2, 1, 2, 4};
213  unsigned int outputShape[] = {8, 1, 1, 3};
214 
216  desc.m_Parameters.m_DataLayout = dataLayout;
217  desc.m_Parameters.m_BlockShape = {2, 2};
218  desc.m_Parameters.m_PadList = {{0, 0}, {2, 0}};
219 
220  inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
221  outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
222 
223  std::vector<float> input = std::vector<float>(
224  {
225  1.0f, 2.0f, 3.0f, 4.0f,
226  5.0f, 6.0f, 7.0f, 8.0f,
227  9.0f, 10.0f, 11.0f, 12.0f,
228  13.0f, 14.0f, 15.0f, 16.0f
229  });
230 
231  std::vector<float> outputExpected = std::vector<float>(
232  {
233  0.0f, 1.0f, 3.0f,
234  0.0f, 9.0f, 11.0f,
235  0.0f, 2.0f, 4.0f,
236  0.0f, 10.0f, 12.0f,
237  0.0f, 5.0f, 7.0f,
238  0.0f, 13.0f, 15.0f,
239  0.0f, 6.0f, 8.0f,
240  0.0f, 14.0f, 16.0f
241  });
242 
243  return SpaceToBatchNdTestImpl<T>(
244  workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected, desc);
245 }
246 
247 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
248 LayerTestResult<T, 4> SpaceToBatchNdSimpleNhwcTest(
249  armnn::IWorkloadFactory& workloadFactory,
251 {
252  return SpaceToBatchNdSimpleTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
253 }
254 
255 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
256 LayerTestResult<T, 4> SpaceToBatchNdMultiChannelsNhwcTest(
257  armnn::IWorkloadFactory& workloadFactory,
259 {
260  return SpaceToBatchNdMultiChannelsTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
261 }
262 
263 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
264 LayerTestResult<T, 4> SpaceToBatchNdMultiBlockNhwcTest(
265  armnn::IWorkloadFactory& workloadFactory,
267 {
268  return SpaceToBatchNdMultiBlockTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
269 }
270 
271 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
272 LayerTestResult<T, 4> SpaceToBatchNdPaddingNhwcTest(
273  armnn::IWorkloadFactory& workloadFactory,
275 {
276  return SpaceToBatchNdPaddingTest<ArmnnType>(workloadFactory, memoryManager, armnn::DataLayout::NHWC);
277 }
278 
279 } // anonymous namespace
280 
282  armnn::IWorkloadFactory& workloadFactory,
284 {
285  return SpaceToBatchNdSimpleTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
286 }
287 
289  armnn::IWorkloadFactory& workloadFactory,
291 {
292  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
293 }
294 
296  armnn::IWorkloadFactory& workloadFactory,
298 {
299  return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
300 }
301 
303  armnn::IWorkloadFactory& workloadFactory,
305 {
306  return SpaceToBatchNdPaddingTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
307 }
308 
310  armnn::IWorkloadFactory& workloadFactory,
312 {
313  return SpaceToBatchNdSimpleTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
314 }
315 
317  armnn::IWorkloadFactory& workloadFactory,
319 {
320  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
321 }
322 
324  armnn::IWorkloadFactory& workloadFactory,
326 {
327  return SpaceToBatchNdMultiBlockTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
328 }
329 
331  armnn::IWorkloadFactory& workloadFactory,
333 {
334  return SpaceToBatchNdPaddingTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
335 }
336 
338  armnn::IWorkloadFactory& workloadFactory,
340 {
341  return SpaceToBatchNdSimpleTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
342 }
343 
345  armnn::IWorkloadFactory& workloadFactory,
347 {
348  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
349 }
350 
352  armnn::IWorkloadFactory& workloadFactory,
354 {
355  return SpaceToBatchNdMultiBlockTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
356 }
357 
359  armnn::IWorkloadFactory& workloadFactory,
361 {
362  return SpaceToBatchNdPaddingTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
363 }
364 
366  armnn::IWorkloadFactory& workloadFactory,
368 {
369  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
370 }
371 
373  armnn::IWorkloadFactory& workloadFactory,
375 {
376  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
377 }
378 
380  armnn::IWorkloadFactory& workloadFactory,
382 {
383  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
384 }
385 
387  armnn::IWorkloadFactory& workloadFactory,
389 {
390  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
391 }
392 
394  armnn::IWorkloadFactory& workloadFactory,
396 {
397  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
398 }
399 
401  armnn::IWorkloadFactory& workloadFactory,
403 {
404  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
405 }
406 
408  armnn::IWorkloadFactory& workloadFactory,
410 {
411  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
412 }
413 
415  armnn::IWorkloadFactory& workloadFactory,
417 {
418  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::Float16>(workloadFactory, memoryManager);
419 }
420 
422  armnn::IWorkloadFactory& workloadFactory,
424 {
425  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
426 }
427 
429  armnn::IWorkloadFactory& workloadFactory,
431 {
432  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
433 }
434 
436  armnn::IWorkloadFactory& workloadFactory,
438 {
439  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
440 }
441 
443  armnn::IWorkloadFactory& workloadFactory,
445 {
446  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
447 }
448 
450  armnn::IWorkloadFactory& workloadFactory,
452 {
453  return SpaceToBatchNdSimpleTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
454 }
455 
457  armnn::IWorkloadFactory& workloadFactory,
459 {
460  return SpaceToBatchNdMultiChannelsTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
461 }
462 
464  armnn::IWorkloadFactory& workloadFactory,
466 {
467  return SpaceToBatchNdMultiBlockTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
468 }
469 
471  armnn::IWorkloadFactory& workloadFactory,
473 {
474  return SpaceToBatchNdPaddingTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
475 }
476 
478  armnn::IWorkloadFactory& workloadFactory,
480 {
481  return SpaceToBatchNdSimpleNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
482 }
483 
485  armnn::IWorkloadFactory& workloadFactory,
487 {
488  return SpaceToBatchNdMultiChannelsNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
489 }
490 
492  armnn::IWorkloadFactory& workloadFactory,
494 {
495  return SpaceToBatchNdMultiBlockNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
496 }
497 
499  armnn::IWorkloadFactory& workloadFactory,
501 {
502  return SpaceToBatchNdPaddingNhwcTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
503 }
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:187
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)
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
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:131
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
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
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:465
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:481
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)