ArmNN
 20.08
ResizeTestImpl.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "ResizeTestImpl.hpp"
7 
8 #include <QuantizeHelper.hpp>
9 
10 
13 #include <armnnUtils/Permute.hpp>
14 
18 
19 #include <test/TensorHelpers.hpp>
20 
21 namespace
22 {
23 
24 struct ResizeTestParams
25 {
26  ResizeTestParams()
27  : m_ResizeMethod(armnn::ResizeMethod::Bilinear)
28  , m_DataLayout(armnn::DataLayout::NCHW)
29  , m_InQuantScale(1.0f)
30  , m_InQuantOffset(0)
31  , m_OutQuantScale(1.0f)
32  , m_OutQuantOffset(0)
33  , m_AlignCorners(false)
34  , m_HalfPixelCenters(false) {}
35 
36  armnn::ResizeMethod m_ResizeMethod;
37  armnn::DataLayout m_DataLayout;
38 
39  armnn::TensorShape m_InputShape;
40  armnn::TensorShape m_OutputShape;
41 
42  std::vector<float> m_InputData;
43  std::vector<float> m_ExpectedOutputData;
44 
45  float m_InQuantScale;
46  int32_t m_InQuantOffset;
47 
48  float m_OutQuantScale;
49  int32_t m_OutQuantOffset;
50 
51  bool m_AlignCorners;
52  bool m_HalfPixelCenters;
53 
54  void SetInQuantParams(float quantScale, int32_t quantOffset)
55  {
56  m_InQuantScale = quantScale;
57  m_InQuantOffset = quantOffset;
58  }
59 
60  void SetOutQuantParams(float quantScale, int32_t quantOffset)
61  {
62  m_OutQuantScale = quantScale;
63  m_OutQuantOffset = quantOffset;
64  }
65 
66  void SetInOutQuantParams(float quantScale, int32_t quantOffset)
67  {
68  SetInQuantParams(quantScale, quantOffset);
69  SetOutQuantParams(quantScale, quantOffset);
70  }
71 };
72 
73 template<size_t NumDims,
74  armnn::DataType ArmnnType,
75  typename T = armnn::ResolveType<ArmnnType>>
76 LayerTestResult<T, NumDims> ResizeTestImpl(
77  armnn::IWorkloadFactory& workloadFactory,
79  const ResizeTestParams& params)
80 {
81  IgnoreUnused(memoryManager);
82  armnn::TensorInfo inputInfo(params.m_InputShape, ArmnnType);
83  armnn::TensorInfo outputInfo(params.m_OutputShape, ArmnnType);
84 
85  if (armnn::IsQuantizedType<T>())
86  {
87  inputInfo.SetQuantizationScale(params.m_InQuantScale);
88  inputInfo.SetQuantizationOffset(params.m_InQuantOffset);
89 
90  outputInfo.SetQuantizationScale(params.m_OutQuantScale);
91  outputInfo.SetQuantizationOffset(params.m_OutQuantOffset);
92  }
93 
94  std::vector<T> inputData =
95  armnnUtils::QuantizedVector<T>(params.m_InputData, params.m_InQuantScale, params.m_InQuantOffset);
96 
97  std::vector<T> expectedOutputData =
98  armnnUtils::QuantizedVector<T>(params.m_ExpectedOutputData,
99  params.m_OutQuantScale,
100  params.m_OutQuantOffset);
101 
102  if (params.m_DataLayout == armnn::DataLayout::NHWC)
103  {
104  PermuteTensorNchwToNhwc(inputInfo, inputData);
105  PermuteTensorNchwToNhwc(outputInfo, expectedOutputData);
106  }
107 
108  auto input = MakeTensor<T, NumDims>(inputInfo, inputData);
109 
110  LayerTestResult<T, NumDims> result(outputInfo);
111  result.outputExpected = MakeTensor<T, NumDims>(outputInfo, expectedOutputData);
113  std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputInfo);
114  std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputInfo);
116 
117  armnn::ResizeQueueDescriptor descriptor;
118  descriptor.m_Parameters.m_Method = params.m_ResizeMethod;
119  descriptor.m_Parameters.m_DataLayout = params.m_DataLayout;
120  descriptor.m_Parameters.m_AlignCorners = params.m_AlignCorners;
121  descriptor.m_Parameters.m_HalfPixelCenters = params.m_HalfPixelCenters;
122 
123  armnnUtils::DataLayoutIndexed dataLayoutIndexed(params.m_DataLayout);
124  descriptor.m_Parameters.m_TargetWidth = params.m_OutputShape[dataLayoutIndexed.GetWidthIndex()];
125  descriptor.m_Parameters.m_TargetHeight = params.m_OutputShape[dataLayoutIndexed.GetHeightIndex()];
126 
128  AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get());
129  AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get());
130 
131  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateResize(descriptor, info);
132 
133  inputHandle->Allocate();
134  outputHandle->Allocate();
135  CopyDataToITensorHandle(inputHandle.get(), input.origin());
136 
137  workload->PostAllocationConfigure();
138  workload->Execute();
139 
140  CopyDataFromITensorHandle(result.output.origin(), outputHandle.get());
141  return result;
142 }
143 
144 } // anonymous namespace
145 
146 //
147 // Bilinear
148 //
149 
150 template<armnn::DataType ArmnnType, typename T>
152  armnn::IWorkloadFactory& workloadFactory,
154  const armnn::DataLayout dataLayout)
155 {
156  ResizeTestParams testParams;
157  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
158  testParams.m_DataLayout = dataLayout;
159 
160  testParams.m_InputShape = { 1, 2, 4, 4 };
161  testParams.m_OutputShape = testParams.m_InputShape;
162 
163  testParams.m_InputData =
164  {
165  1.0f, 2.0f, 3.0f, 4.0f,
166  2.0f, 3.0f, 4.0f, 5.0f,
167  3.0f, 4.0f, 5.0f, 6.0f,
168  4.0f, 5.0f, 6.0f, 7.0f,
169 
170  1.0f, 2.0f, 3.0f, 4.0f,
171  2.0f, 3.0f, 4.0f, 5.0f,
172  3.0f, 4.0f, 5.0f, 6.0f,
173  4.0f, 5.0f, 6.0f, 7.0f
174  };
175 
176  testParams.m_ExpectedOutputData = testParams.m_InputData;
177 
178  testParams.SetInOutQuantParams(1.5f, 3);
179 
180  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
181 }
182 
183 template<armnn::DataType ArmnnType, typename T>
185  armnn::IWorkloadFactory& workloadFactory,
187  const armnn::DataLayout dataLayout)
188 {
189  ResizeTestParams testParams;
190  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
191  testParams.m_DataLayout = dataLayout;
192 
193  testParams.m_InputShape = { 1, 2, 2, 2 };
194  testParams.m_OutputShape = { 1, 2, 1, 1 };
195 
196  testParams.m_InputData =
197  {
198  1.0f, 255.0f,
199  200.0f, 250.0f,
200 
201  250.0f, 200.0f,
202  250.0f, 1.0f
203  };
204 
205  // The 'resize' operation projects the top-left corner of output texels into the input image,
206  // then figures out the interpolants and weights. Note this is different to projecting the centre of the
207  // output texel. Thus, for a input matrix of 2x2, we'll expect the output 1x1 matrix to contain, as
208  // its single element, the value that was at position (0,0) of the input matrix (rather than an average,
209  // which we would expect if projecting the centre).
210  testParams.m_ExpectedOutputData =
211  {
212  1.0f,
213 
214  250.0f
215  };
216 
217  testParams.SetInOutQuantParams(0.1567f, 1);
218 
219  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
220 }
221 
222 template<armnn::DataType ArmnnType, typename T>
224  armnn::IWorkloadFactory& workloadFactory,
226  const armnn::DataLayout dataLayout)
227 {
228  ResizeTestParams testParams;
229  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
230  testParams.m_DataLayout = dataLayout;
231 
232  testParams.m_InputShape = { 1, 2, 4, 4 };
233  testParams.m_OutputShape = { 1, 2, 2, 2 };
234 
235  testParams.m_InputData =
236  {
237  1.0f, 2.0f, 3.0f, 4.0f,
238  2.0f, 3.0f, 4.0f, 5.0f,
239  3.0f, 4.0f, 5.0f, 6.0f,
240  4.0f, 5.0f, 6.0f, 7.0f,
241 
242  7.0f, 6.0f, 5.0f, 4.0f,
243  6.0f, 5.0f, 4.0f, 3.0f,
244  5.0f, 4.0f, 3.0f, 2.0f,
245  4.0f, 3.0f, 2.0f, 1.0f
246  };
247 
248  testParams.m_ExpectedOutputData =
249  {
250  1.0f, 3.0f,
251  3.0f, 5.0f,
252 
253  7.0f, 5.0f,
254  5.0f, 3.0f
255  };
256 
257  testParams.SetInOutQuantParams(3.141592f, 3);
258 
259  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
260 }
261 
262 template<armnn::DataType ArmnnType, typename T>
264  armnn::IWorkloadFactory& workloadFactory,
266  const armnn::DataLayout dataLayout)
267 {
268  ResizeTestParams testParams;
269  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
270  testParams.m_DataLayout = dataLayout;
271 
272  testParams.m_InputShape = { 1, 2, 3, 5 };
273  testParams.m_OutputShape = { 1, 2, 2, 3 };
274 
275  testParams.m_InputData =
276  {
277  1.5f, 3.0f, 4.5f, 6.0f, 7.5f,
278  9.0f, 10.5f, 12.0f, 13.5f, 15.0f,
279  16.5f, 18.0f, 19.5f, 21.0f, 22.5f,
280 
281  16.5f, 18.0f, 19.5f, 21.0f, 22.5f,
282  9.0f, 10.5f, 12.0f, 13.5f, 15.0f,
283  1.5f, 3.0f, 4.5f, 6.0f, 7.5f
284  };
285 
286  testParams.m_ExpectedOutputData =
287  {
288  1.50f, 4.00f, 6.50f,
289  12.75f, 15.25f, 17.75f,
290 
291  16.50f, 19.00f, 21.50f,
292  5.25f, 7.75f, 10.25f
293  };
294 
295  testParams.SetInOutQuantParams(1.5f, -1);
296 
297  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
298 }
299 
300 template<armnn::DataType ArmnnType, typename T>
302  armnn::IWorkloadFactory& workloadFactory,
304  const armnn::DataLayout dataLayout)
305 {
306  ResizeTestParams testParams;
307  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
308  testParams.m_DataLayout = dataLayout;
309 
310  testParams.m_InputShape = { 1, 2, 3, 2 };
311  testParams.m_OutputShape = { 1, 2, 3, 5 };
312 
313  testParams.m_InputData =
314  {
315  1.0f, 2.0f,
316  13.0f, 21.0f,
317  144.0f, 233.0f,
318 
319  233.0f, 144.0f,
320  21.0f, 13.0f,
321  2.0f, 1.0f
322  };
323 
324  testParams.m_ExpectedOutputData =
325  {
326  1.0f, 1.4f, 1.8f, 2.0f, 2.0f,
327  13.0f, 16.2f, 19.4f, 21.0f, 21.0f,
328  144.0f, 179.6f, 215.2f, 233.0f, 233.0f,
329 
330  233.0f, 197.4f, 161.8f, 144.0f, 144.0f,
331  21.0f, 17.8f, 14.6f, 13.0f, 13.0f,
332  2.0f, 1.6f, 1.2f, 1.0f, 1.0f
333  };
334 
335  testParams.SetInQuantParams(1.0f, 0);
336 
337  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
338 }
339 
340 //
341 // NearestNeighbor
342 //
343 
344 template<armnn::DataType ArmnnType, typename T>
346  armnn::IWorkloadFactory& workloadFactory,
348  const armnn::DataLayout dataLayout)
349 {
350  ResizeTestParams testParams;
351  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
352  testParams.m_DataLayout = dataLayout;
353 
354  testParams.m_InputShape = { 1, 2, 4, 4 };
355  testParams.m_OutputShape = testParams.m_InputShape;
356 
357  testParams.m_InputData =
358  {
359  1.0f, 2.0f, 3.0f, 4.0f,
360  2.0f, 3.0f, 4.0f, 5.0f,
361  3.0f, 4.0f, 5.0f, 6.0f,
362  4.0f, 5.0f, 6.0f, 7.0f,
363 
364  1.0f, 2.0f, 3.0f, 4.0f,
365  2.0f, 3.0f, 4.0f, 5.0f,
366  3.0f, 4.0f, 5.0f, 6.0f,
367  4.0f, 5.0f, 6.0f, 7.0f
368  };
369 
370  testParams.m_ExpectedOutputData = testParams.m_InputData;
371 
372  testParams.SetInOutQuantParams(1.5f, 3);
373 
374  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
375 }
376 
377 template<armnn::DataType ArmnnType, typename T>
379  armnn::IWorkloadFactory& workloadFactory,
381  const armnn::DataLayout dataLayout)
382 {
383  ResizeTestParams testParams;
384  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
385  testParams.m_DataLayout = dataLayout;
386 
387  testParams.m_InputShape = { 1, 2, 2, 2 };
388  testParams.m_OutputShape = { 1, 2, 1, 1 };
389 
390  testParams.m_InputData =
391  {
392  1.0f, 255.0f,
393  200.0f, 250.0f,
394 
395  250.0f, 200.0f,
396  250.0f, 1.0f
397  };
398 
399  // The 'resize' operation projects the top-left corner of output texels into the input image,
400  // then figures out the interpolants and weights. Note this is different to projecting the centre of the
401  // output texel. Thus, for a input matrix of 2x2, we'll expect the output 1x1 matrix to contain, as
402  // its single element, the value that was at position (0,0) of the input matrix (rather than an average,
403  // which we would expect if projecting the centre).
404  testParams.m_ExpectedOutputData =
405  {
406  1.0f,
407 
408  250.0f
409  };
410 
411  testParams.SetInOutQuantParams(0.1567f, 1);
412 
413  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
414 }
415 
416 template<armnn::DataType ArmnnType, typename T>
418  armnn::IWorkloadFactory& workloadFactory,
420  const armnn::DataLayout dataLayout)
421 {
422  ResizeTestParams testParams;
423  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
424  testParams.m_DataLayout = dataLayout;
425 
426  testParams.m_InputShape = { 1, 2, 4, 4 };
427  testParams.m_OutputShape = { 1, 2, 2, 2 };
428 
429  testParams.m_InputData =
430  {
431  1.0f, 2.0f, 3.0f, 4.0f,
432  2.0f, 3.0f, 4.0f, 5.0f,
433  3.0f, 4.0f, 5.0f, 6.0f,
434  4.0f, 5.0f, 6.0f, 7.0f,
435 
436  7.0f, 6.0f, 5.0f, 4.0f,
437  6.0f, 5.0f, 4.0f, 3.0f,
438  5.0f, 4.0f, 3.0f, 2.0f,
439  4.0f, 3.0f, 2.0f, 1.0f
440  };
441 
442  testParams.m_ExpectedOutputData =
443  {
444  1.0f, 3.0f,
445  3.0f, 5.0f,
446 
447  7.0f, 5.0f,
448  5.0f, 3.0f
449  };
450 
451  testParams.SetInOutQuantParams(3.141592f, 3);
452 
453  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
454 }
455 
456 template<armnn::DataType ArmnnType, typename T>
458  armnn::IWorkloadFactory& workloadFactory,
460  const armnn::DataLayout dataLayout)
461 {
462  ResizeTestParams testParams;
463  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
464  testParams.m_DataLayout = dataLayout;
465 
466  testParams.m_InputShape = { 1, 2, 3, 5 };
467  testParams.m_OutputShape = { 1, 2, 2, 3 };
468 
469  testParams.m_InputData =
470  {
471  1.5f, 3.0f, 4.5f, 6.0f, 7.5f,
472  9.0f, 10.5f, 12.0f, 13.5f, 15.0f,
473  16.5f, 18.0f, 19.5f, 21.0f, 22.5f,
474 
475  16.5f, 18.0f, 19.5f, 21.0f, 22.5f,
476  9.0f, 10.5f, 12.0f, 13.5f, 15.0f,
477  1.5f, 3.0f, 4.5f, 6.0f, 7.5f
478  };
479 
480  testParams.m_ExpectedOutputData =
481  {
482  1.5f, 3.0f, 6.0f,
483  9.0f, 10.5f, 13.5f,
484 
485  16.5f, 18.0f, 21.0f,
486  9.0f, 10.5f, 13.5f
487  };
488 
489  testParams.SetInOutQuantParams(1.5f, -1);
490 
491  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
492 }
493 
494 template<armnn::DataType ArmnnType, typename T>
496  armnn::IWorkloadFactory& workloadFactory,
498  const armnn::DataLayout dataLayout,
499  float inQuantScale,
500  int32_t inQuantOffset,
501  float outQuantScale,
502  int32_t outQuantOffset)
503 {
504  ResizeTestParams testParams;
505  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
506  testParams.m_DataLayout = dataLayout;
507 
508  testParams.m_InputShape = { 1, 2, 3, 2 };
509  testParams.m_OutputShape = { 1, 2, 3, 5 };
510 
511  testParams.m_InputData =
512  {
513  0.183005f, 2.379065f,
514  1.054970f, 1.302565f,
515  2.400595f, 0.688960f,
516 
517  2.400595f, 0.688960f,
518  1.054970f, 1.302565f,
519  0.183005f, 2.379065f,
520  };
521 
522  testParams.m_ExpectedOutputData =
523  {
524  0.183005f, 0.183005f, 0.183005f, 2.379065f, 2.379065f,
525  1.054970f, 1.054970f, 1.054970f, 1.302565f, 1.302565f,
526  2.400595f, 2.400595f, 2.400595f, 0.688960f, 0.688960f,
527 
528  2.400595f, 2.400595f, 2.400595f, 0.688960f, 0.688960f,
529  1.054970f, 1.054970f, 1.054970f, 1.302565f, 1.302565f,
530  0.183005f, 0.183005f, 0.183005f, 2.379065f, 2.379065f
531  };
532 
533  testParams.SetInQuantParams(inQuantScale, inQuantOffset);
534  testParams.SetOutQuantParams(outQuantScale, outQuantOffset);
535 
536  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
537 }
538 
539 template<armnn::DataType ArmnnType, typename T>
541  armnn::IWorkloadFactory& workloadFactory,
543  const armnn::DataLayout dataLayout)
544 {
545  ResizeTestParams testParams;
546  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
547  testParams.m_DataLayout = dataLayout;
548  testParams.m_HalfPixelCenters = true;
549 
550  testParams.m_InputShape = { 2, 1, 2, 2 };
551  testParams.m_OutputShape = { 2, 1, 3, 3 };
552 
553  testParams.m_InputData =
554  {
555  1.0f, 2.0f,
556  3.0f, 4.0f,
557 
558  1.0f, 2.0f,
559  3.0f, 4.0f
560  };
561 
562  testParams.m_ExpectedOutputData =
563  {
564  1.0f, 1.5f, 2.0f,
565  2.0f, 2.5f, 3.0f,
566  3.0f, 3.5f, 4.0f,
567 
568  1.0f, 1.5f, 2.0f,
569  2.0f, 2.5f, 3.0f,
570  3.0f, 3.5f, 4.0f,
571  };
572 
573  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
574 }
575 
576 template<armnn::DataType ArmnnType, typename T>
578  armnn::IWorkloadFactory& workloadFactory,
580  const armnn::DataLayout dataLayout)
581 {
582  ResizeTestParams testParams;
583  testParams.m_ResizeMethod = armnn::ResizeMethod::Bilinear;
584  testParams.m_DataLayout = dataLayout;
585  testParams.m_AlignCorners = true;
586 
587  testParams.m_InputShape = { 1, 1, 2, 2 };
588  testParams.m_OutputShape = { 1, 1, 1, 1 };
589 
590  testParams.m_InputData =
591  {
592  1.0f, 2.0f,
593  3.0f, 4.0f,
594  };
595 
596  testParams.m_ExpectedOutputData =
597  {
598  1.0f
599  };
600 
601  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
602 }
603 
604 template<armnn::DataType ArmnnType, typename T>
606  armnn::IWorkloadFactory& workloadFactory,
608  const armnn::DataLayout dataLayout)
609 {
610  ResizeTestParams testParams;
611  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
612  testParams.m_DataLayout = dataLayout;
613  testParams.m_HalfPixelCenters = true;
614 
615  testParams.m_InputShape = { 1, 1, 2, 5 };
616  testParams.m_OutputShape = { 1, 1, 2, 2 };
617 
618  testParams.m_InputData =
619  {
620  1.0f, 2.0f, 3.0f, 4.0f, 5.0f,
621 
622  1.0f, 2.0f, 3.0f, 4.0f, 5.0f
623  };
624 
625  testParams.m_ExpectedOutputData =
626  {
627  2.0f, 4.0f,
628  2.0f, 4.0f
629  };
630 
631  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
632 }
633 
634 template<armnn::DataType ArmnnType, typename T>
636  armnn::IWorkloadFactory& workloadFactory,
638  const armnn::DataLayout dataLayout)
639 {
640  ResizeTestParams testParams;
641  testParams.m_ResizeMethod = armnn::ResizeMethod::NearestNeighbor;
642  testParams.m_DataLayout = dataLayout;
643  testParams.m_AlignCorners = true;
644 
645  testParams.m_InputShape = { 1, 1, 2, 2 };
646  testParams.m_OutputShape = { 1, 1, 1, 1 };
647 
648  testParams.m_InputData =
649  {
650  1.0f, 2.0f,
651  3.0f, 4.0f,
652  };
653 
654  testParams.m_ExpectedOutputData =
655  {
656  1.0f
657  };
658 
659  return ResizeTestImpl<4, ArmnnType>(workloadFactory, memoryManager, testParams);
660 }
661 
662 //
663 // Explicit template instantiations
664 //
665 
666 // Float32
668 ResizeBilinearNopTest<armnn::DataType::Float32>(
669  armnn::IWorkloadFactory& workloadFactory,
671  const armnn::DataLayout dataLayout);
672 
673 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
674 SimpleResizeBilinearTest<armnn::DataType::Float32>(
675  armnn::IWorkloadFactory& workloadFactory,
677  const armnn::DataLayout dataLayout);
678 
679 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
680 ResizeBilinearSqMinTest<armnn::DataType::Float32>(
681  armnn::IWorkloadFactory& workloadFactory,
683  const armnn::DataLayout dataLayout);
684 
685 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
686 ResizeBilinearMinTest<armnn::DataType::Float32>(
687  armnn::IWorkloadFactory& workloadFactory,
689  const armnn::DataLayout dataLayout);
690 
691 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
692 ResizeBilinearMagTest<armnn::DataType::Float32>(
693  armnn::IWorkloadFactory& workloadFactory,
695  const armnn::DataLayout dataLayout);
696 
697 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
698 ResizeNearestNeighborNopTest<armnn::DataType::Float32>(
699  armnn::IWorkloadFactory& workloadFactory,
701  const armnn::DataLayout dataLayout);
702 
703 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
704 SimpleResizeNearestNeighborTest<armnn::DataType::Float32>(
705  armnn::IWorkloadFactory& workloadFactory,
707  const armnn::DataLayout dataLayout);
708 
709 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
710 ResizeNearestNeighborSqMinTest<armnn::DataType::Float32>(
711  armnn::IWorkloadFactory& workloadFactory,
713  const armnn::DataLayout dataLayout);
714 
715 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
716 ResizeNearestNeighborMinTest<armnn::DataType::Float32>(
717  armnn::IWorkloadFactory& workloadFactory,
719  const armnn::DataLayout dataLayout);
720 
721 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
722 ResizeNearestNeighborMagTest<armnn::DataType::Float32>(
723  armnn::IWorkloadFactory& workloadFactory,
725  const armnn::DataLayout dataLayout,
726  float inQuantScale,
727  int32_t inQuantOffset,
728  float outQuantScale,
729  int32_t outQuantOffset);
730 
731 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
732 HalfPixelCentersResizeBilinearTest<armnn::DataType::Float32>(
733  armnn::IWorkloadFactory& workloadFactory,
735  const armnn::DataLayout dataLayout);
736 
737 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
738 AlignCornersResizeBilinearTest<armnn::DataType::Float32>(
739  armnn::IWorkloadFactory& workloadFactory,
741  const armnn::DataLayout dataLayout);
742 
743 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
744 HalfPixelCentersResizeNearestNeighbourTest<armnn::DataType::Float32>(
745  armnn::IWorkloadFactory& workloadFactory,
747  const armnn::DataLayout dataLayout);
748 
749 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 4>
750 AlignCornersResizeNearestNeighbourTest<armnn::DataType::Float32>(
751  armnn::IWorkloadFactory& workloadFactory,
753  const armnn::DataLayout dataLayout);
754 
755 // Float16
757 ResizeBilinearNopTest<armnn::DataType::Float16>(
758  armnn::IWorkloadFactory& workloadFactory,
760  const armnn::DataLayout dataLayout);
761 
762 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
763 SimpleResizeBilinearTest<armnn::DataType::Float16>(
764  armnn::IWorkloadFactory& workloadFactory,
766  const armnn::DataLayout dataLayout);
767 
768 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
769 ResizeBilinearSqMinTest<armnn::DataType::Float16>(
770  armnn::IWorkloadFactory& workloadFactory,
772  const armnn::DataLayout dataLayout);
773 
774 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
775 ResizeBilinearMinTest<armnn::DataType::Float16>(
776  armnn::IWorkloadFactory& workloadFactory,
778  const armnn::DataLayout dataLayout);
779 
780 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
781 ResizeBilinearMagTest<armnn::DataType::Float16>(
782  armnn::IWorkloadFactory& workloadFactory,
784  const armnn::DataLayout dataLayout);
785 
786 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
787 ResizeNearestNeighborNopTest<armnn::DataType::Float16>(
788  armnn::IWorkloadFactory& workloadFactory,
790  const armnn::DataLayout dataLayout);
791 
792 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
793 SimpleResizeNearestNeighborTest<armnn::DataType::Float16>(
794  armnn::IWorkloadFactory& workloadFactory,
796  const armnn::DataLayout dataLayout);
797 
798 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
799 ResizeNearestNeighborSqMinTest<armnn::DataType::Float16>(
800  armnn::IWorkloadFactory& workloadFactory,
802  const armnn::DataLayout dataLayout);
803 
804 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
805 ResizeNearestNeighborMinTest<armnn::DataType::Float16>(
806  armnn::IWorkloadFactory& workloadFactory,
808  const armnn::DataLayout dataLayout);
809 
810 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
811 ResizeNearestNeighborMagTest<armnn::DataType::Float16>(
812  armnn::IWorkloadFactory& workloadFactory,
814  const armnn::DataLayout dataLayout,
815  float inQuantScale,
816  int32_t inQuantOffset,
817  float outQuantScale,
818  int32_t outQuantOffset);
819 
820 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
821 HalfPixelCentersResizeBilinearTest<armnn::DataType::Float16>(
822  armnn::IWorkloadFactory& workloadFactory,
824  const armnn::DataLayout dataLayout);
825 
826 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
827 AlignCornersResizeBilinearTest<armnn::DataType::Float16>(
828  armnn::IWorkloadFactory& workloadFactory,
830  const armnn::DataLayout dataLayout);
831 
832 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
833 HalfPixelCentersResizeNearestNeighbourTest<armnn::DataType::Float16>(
834  armnn::IWorkloadFactory& workloadFactory,
836  const armnn::DataLayout dataLayout);
837 
838 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float16>, 4>
839 AlignCornersResizeNearestNeighbourTest<armnn::DataType::Float16>(
840  armnn::IWorkloadFactory& workloadFactory,
842  const armnn::DataLayout dataLayout);
843 
844 // QAsymm8
846 ResizeBilinearNopTest<armnn::DataType::QAsymmU8>(
847  armnn::IWorkloadFactory& workloadFactory,
849  const armnn::DataLayout dataLayout);
850 
851 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
852 SimpleResizeBilinearTest<armnn::DataType::QAsymmU8>(
853  armnn::IWorkloadFactory& workloadFactory,
855  const armnn::DataLayout dataLayout);
856 
857 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
858 ResizeBilinearSqMinTest<armnn::DataType::QAsymmU8>(
859  armnn::IWorkloadFactory& workloadFactory,
861  const armnn::DataLayout dataLayout);
862 
863 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
864 ResizeBilinearMinTest<armnn::DataType::QAsymmU8>(
865  armnn::IWorkloadFactory& workloadFactory,
867  const armnn::DataLayout dataLayout);
868 
869 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
870 ResizeBilinearMagTest<armnn::DataType::QAsymmU8>(
871  armnn::IWorkloadFactory& workloadFactory,
873  const armnn::DataLayout dataLayout);
874 
875 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
876 ResizeNearestNeighborNopTest<armnn::DataType::QAsymmU8>(
877  armnn::IWorkloadFactory& workloadFactory,
879  const armnn::DataLayout dataLayout);
880 
881 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
882 SimpleResizeNearestNeighborTest<armnn::DataType::QAsymmU8>(
883  armnn::IWorkloadFactory& workloadFactory,
885  const armnn::DataLayout dataLayout);
886 
887 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
888 ResizeNearestNeighborSqMinTest<armnn::DataType::QAsymmU8>(
889  armnn::IWorkloadFactory& workloadFactory,
891  const armnn::DataLayout dataLayout);
892 
893 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
894 ResizeNearestNeighborMinTest<armnn::DataType::QAsymmU8>(
895  armnn::IWorkloadFactory& workloadFactory,
897  const armnn::DataLayout dataLayout);
898 
899 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
900 ResizeNearestNeighborMagTest<armnn::DataType::QAsymmU8>(
901  armnn::IWorkloadFactory& workloadFactory,
903  const armnn::DataLayout dataLayout,
904  float inQuantScale,
905  int32_t inQuantOffset,
906  float outQuantScale,
907  int32_t outQuantOffset);
908 
910 HalfPixelCentersResizeBilinearTest<armnn::DataType::QAsymmS8>(
911  armnn::IWorkloadFactory& workloadFactory,
913  const armnn::DataLayout dataLayout);
914 
915 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
916 AlignCornersResizeBilinearTest<armnn::DataType::QAsymmS8>(
917  armnn::IWorkloadFactory& workloadFactory,
919  const armnn::DataLayout dataLayout);
920 
921 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
922 HalfPixelCentersResizeNearestNeighbourTest<armnn::DataType::QAsymmS8>(
923  armnn::IWorkloadFactory& workloadFactory,
925  const armnn::DataLayout dataLayout);
926 
927 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
928 AlignCornersResizeNearestNeighbourTest<armnn::DataType::QAsymmS8>(
929  armnn::IWorkloadFactory& workloadFactory,
931  const armnn::DataLayout dataLayout);
932 
933 // QAsymmS8
934 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
935 ResizeBilinearNopTest<armnn::DataType::QAsymmS8>(
936  armnn::IWorkloadFactory& workloadFactory,
938  const armnn::DataLayout dataLayout);
939 
940 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
941 SimpleResizeBilinearTest<armnn::DataType::QAsymmS8>(
942  armnn::IWorkloadFactory& workloadFactory,
944  const armnn::DataLayout dataLayout);
945 
946 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
947 ResizeBilinearSqMinTest<armnn::DataType::QAsymmS8>(
948  armnn::IWorkloadFactory& workloadFactory,
950  const armnn::DataLayout dataLayout);
951 
952 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
953 ResizeBilinearMinTest<armnn::DataType::QAsymmS8>(
954  armnn::IWorkloadFactory& workloadFactory,
956  const armnn::DataLayout dataLayout);
957 
958 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
959 ResizeBilinearMagTest<armnn::DataType::QAsymmS8>(
960  armnn::IWorkloadFactory& workloadFactory,
962  const armnn::DataLayout dataLayout);
963 
964 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
965 ResizeNearestNeighborNopTest<armnn::DataType::QAsymmS8>(
966  armnn::IWorkloadFactory& workloadFactory,
968  const armnn::DataLayout dataLayout);
969 
970 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
971 SimpleResizeNearestNeighborTest<armnn::DataType::QAsymmS8>(
972  armnn::IWorkloadFactory& workloadFactory,
974  const armnn::DataLayout dataLayout);
975 
976 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
977 ResizeNearestNeighborSqMinTest<armnn::DataType::QAsymmS8>(
978  armnn::IWorkloadFactory& workloadFactory,
980  const armnn::DataLayout dataLayout);
981 
982 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
983 ResizeNearestNeighborMinTest<armnn::DataType::QAsymmS8>(
984  armnn::IWorkloadFactory& workloadFactory,
986  const armnn::DataLayout dataLayout);
987 
988 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 4>
989 ResizeNearestNeighborMagTest<armnn::DataType::QAsymmS8>(
990  armnn::IWorkloadFactory& workloadFactory,
992  const armnn::DataLayout dataLayout,
993  float inQuantScale,
994  int32_t inQuantOffset,
995  float outQuantScale,
996  int32_t outQuantOffset);
997 
998 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
999 HalfPixelCentersResizeBilinearTest<armnn::DataType::QAsymmU8>(
1000  armnn::IWorkloadFactory& workloadFactory,
1002  const armnn::DataLayout dataLayout);
1003 
1004 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
1005 AlignCornersResizeBilinearTest<armnn::DataType::QAsymmU8>(
1006  armnn::IWorkloadFactory& workloadFactory,
1008  const armnn::DataLayout dataLayout);
1009 
1010 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
1011 HalfPixelCentersResizeNearestNeighbourTest<armnn::DataType::QAsymmU8>(
1012  armnn::IWorkloadFactory& workloadFactory,
1014  const armnn::DataLayout dataLayout);
1015 
1016 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 4>
1017 AlignCornersResizeNearestNeighbourTest<armnn::DataType::QAsymmU8>(
1018  armnn::IWorkloadFactory& workloadFactory,
1020  const armnn::DataLayout dataLayout);
1021 
1022 // QSymm16
1024 ResizeBilinearNopTest<armnn::DataType::QSymmS16>(
1025  armnn::IWorkloadFactory& workloadFactory,
1027  const armnn::DataLayout dataLayout);
1028 
1029 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1030 SimpleResizeBilinearTest<armnn::DataType::QSymmS16>(
1031  armnn::IWorkloadFactory& workloadFactory,
1033  const armnn::DataLayout dataLayout);
1034 
1035 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1036 ResizeBilinearSqMinTest<armnn::DataType::QSymmS16>(
1037  armnn::IWorkloadFactory& workloadFactory,
1039  const armnn::DataLayout dataLayout);
1040 
1041 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1042 ResizeBilinearMinTest<armnn::DataType::QSymmS16>(
1043  armnn::IWorkloadFactory& workloadFactory,
1045  const armnn::DataLayout dataLayout);
1046 
1047 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1048 ResizeBilinearMagTest<armnn::DataType::QSymmS16>(
1049  armnn::IWorkloadFactory& workloadFactory,
1051  const armnn::DataLayout dataLayout);
1052 
1053 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1054 ResizeNearestNeighborNopTest<armnn::DataType::QSymmS16>(
1055  armnn::IWorkloadFactory& workloadFactory,
1057  const armnn::DataLayout dataLayout);
1058 
1059 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1060 SimpleResizeNearestNeighborTest<armnn::DataType::QSymmS16>(
1061  armnn::IWorkloadFactory& workloadFactory,
1063  const armnn::DataLayout dataLayout);
1064 
1065 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1066 ResizeNearestNeighborSqMinTest<armnn::DataType::QSymmS16>(
1067  armnn::IWorkloadFactory& workloadFactory,
1069  const armnn::DataLayout dataLayout);
1070 
1071 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1072 ResizeNearestNeighborMinTest<armnn::DataType::QSymmS16>(
1073  armnn::IWorkloadFactory& workloadFactory,
1075  const armnn::DataLayout dataLayout);
1076 
1077 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1078 ResizeNearestNeighborMagTest<armnn::DataType::QSymmS16>(
1079  armnn::IWorkloadFactory& workloadFactory,
1081  const armnn::DataLayout dataLayout,
1082  float inQuantScale,
1083  int32_t inQuantOffset,
1084  float outQuantScale,
1085  int32_t outQuantOffset);
1086 
1087 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1088 HalfPixelCentersResizeBilinearTest<armnn::DataType::QSymmS16>(
1089  armnn::IWorkloadFactory& workloadFactory,
1091  const armnn::DataLayout dataLayout);
1092 
1093 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1094 AlignCornersResizeBilinearTest<armnn::DataType::QSymmS16>(
1095  armnn::IWorkloadFactory& workloadFactory,
1097  const armnn::DataLayout dataLayout);
1098 
1099 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1100 HalfPixelCentersResizeNearestNeighbourTest<armnn::DataType::QSymmS16>(
1101  armnn::IWorkloadFactory& workloadFactory,
1103  const armnn::DataLayout dataLayout);
1104 
1105 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 4>
1106 AlignCornersResizeNearestNeighbourTest<armnn::DataType::QSymmS16>(
1107  armnn::IWorkloadFactory& workloadFactory,
1109  const armnn::DataLayout dataLayout);
LayerTestResult< T, 4 > ResizeNearestNeighborMinTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
DataLayout
Definition: Types.hpp:49
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
DataLayout::NHWC false
ResizeMethod m_Method
The Interpolation method to use (Bilinear, NearestNeighbor).
typename ResolveTypeImpl< DT >::Type ResolveType
Definition: ResolveType.hpp:73
LayerTestResult< T, 4 > ResizeBilinearMinTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
Copyright (c) 2020 ARM Limited.
void IgnoreUnused(Ts &&...)
LayerTestResult< T, 4 > ResizeNearestNeighborNopTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
void PermuteTensorNchwToNhwc(armnn::TensorInfo &tensorInfo, std::vector< T > &tensorData)
DataType
Definition: Types.hpp:32
virtual std::unique_ptr< IWorkload > CreateResize(const ResizeQueueDescriptor &descriptor, const WorkloadInfo &info) const
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
LayerTestResult< T, 4 > HalfPixelCentersResizeNearestNeighbourTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > ResizeBilinearNopTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > ResizeBilinearMagTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
Provides access to the appropriate indexes for Channels, Height and Width based on DataLayout...
LayerTestResult< T, 4 > HalfPixelCentersResizeBilinearTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > ResizeNearestNeighborMagTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout, float inQuantScale, int32_t inQuantOffset, float outQuantScale, int32_t outQuantOffset)
LayerTestResult< T, 4 > SimpleResizeBilinearTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const 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
LayerTestResult< T, 4 > AlignCornersResizeNearestNeighbourTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > AlignCornersResizeBilinearTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > ResizeNearestNeighborSqMinTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
LayerTestResult< T, 4 > ResizeBilinearSqMinTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
ResizeMethod
Definition: Types.hpp:103
Contains information about inputs and outputs to a layer.
LayerTestResult< T, 4 > SimpleResizeNearestNeighborTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::DataLayout dataLayout)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)