2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
7 #include <armnn/ArmNN.hpp>
8 #include <armnn/Tensor.hpp>
11 #include "TensorCopyUtils.hpp"
12 #include "WorkloadTestUtils.hpp"
14 #include <backendsCommon/CpuTensorHandle.hpp>
15 #include <backendsCommon/IBackendInternal.hpp>
16 #include <backendsCommon/IMemoryManager.hpp>
17 #include <reference/workloads/Decoders.hpp>
18 #include <reference/workloads/Encoders.hpp>
19 #include <test/TensorHelpers.hpp>
21 #include <boost/multi_array.hpp>
22 #include <boost/assert.hpp>
30 class IWorkloadFactory;
33 template <std::size_t n>
34 boost::array<unsigned int, n> GetTensorShapeAsArray(const armnn::TensorInfo& tensorInfo)
36 BOOST_ASSERT_MSG(n == tensorInfo.GetNumDimensions(),
37 "Attempting to construct a shape array of mismatching size");
39 boost::array<unsigned int, n> shape;
40 for (unsigned int i = 0; i < n; i++)
42 shape[i] = tensorInfo.GetShape()[i];
47 template <typename T, std::size_t n>
48 struct LayerTestResult
50 LayerTestResult(const armnn::TensorInfo& outputInfo)
52 auto shape( GetTensorShapeAsArray<n>(outputInfo) );
54 outputExpected.resize(shape);
56 compareBoolean = false;
59 boost::multi_array<T, n> output;
60 boost::multi_array<T, n> outputExpected;
65 LayerTestResult<float, 4> SimpleConvolution2d3x5Test(
66 armnn::IWorkloadFactory& workloadFactory,
67 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69 const armnn::DataLayout layout);
71 LayerTestResult<float, 4> SimpleConvolution2d3x3Test(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
75 const armnn::DataLayout layout);
77 LayerTestResult<float, 4> SimpleConvolution2d3x3Stride2x2Test(
78 armnn::IWorkloadFactory& workloadFactory,
79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
81 const armnn::DataLayout layout);
83 LayerTestResult<float, 4> SimpleConvolution2d3x3NhwcTest(
84 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
88 LayerTestResult<float, 4>
89 Convolution2dAsymmetricPaddingLargerThanHalfKernelSizeTest(
90 armnn::IWorkloadFactory& workloadFactory,
91 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
92 const armnn::DataLayout layout);
94 LayerTestResult<float, 4> Convolution2dAsymmetricPaddingTest(
95 armnn::IWorkloadFactory& workloadFactory,
96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
97 const armnn::DataLayout layout);
99 LayerTestResult<float, 4> Convolution1dTest(
100 armnn::IWorkloadFactory& workloadFactory,
101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
104 LayerTestResult<uint8_t, 4> Convolution1dUint8Test(
105 armnn::IWorkloadFactory& workloadFactory,
106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
109 LayerTestResult<float, 4> DepthwiseConvolution2dTest(
110 armnn::IWorkloadFactory& workloadFactory,
111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
113 const armnn::DataLayout layout);
115 LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
116 armnn::IWorkloadFactory& workloadFactory,
117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
120 LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
121 armnn::IWorkloadFactory& workloadFactory,
122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
124 const armnn::DataLayout layout);
126 LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
127 armnn::IWorkloadFactory& workloadFactory,
128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
130 const armnn::DataLayout layout);
132 LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
135 LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
136 armnn::IWorkloadFactory& workloadFactory,
137 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
138 armnn::IWorkloadFactory& refWorkloadFactory,
139 const armnn::DataLayout layout);
141 LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
142 armnn::IWorkloadFactory& workloadFactory,
143 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
144 armnn::IWorkloadFactory& refWorkloadFactory,
145 const armnn::DataLayout layout);
147 LayerTestResult<float, 4> SimpleMaxPooling2dSize2x2Stride2x2Test(
148 armnn::IWorkloadFactory& workloadFactory,
149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150 bool forceNoPadding);
152 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Uint8Test(
153 armnn::IWorkloadFactory& workloadFactory,
154 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155 bool forceNoPadding);
157 LayerTestResult<float, 4> SimpleMaxPooling2dSize3x3Stride2x4Test(
158 armnn::IWorkloadFactory& workloadFactory,
159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
160 bool forceNoPadding);
162 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
163 armnn::IWorkloadFactory& workloadFactory,
164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
165 bool forceNoPadding );
167 LayerTestResult<float, 4> IgnorePaddingSimpleMaxPooling2dTest(
168 armnn::IWorkloadFactory& workloadFactory,
169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
171 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
172 armnn::IWorkloadFactory& workloadFactory,
173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
175 LayerTestResult<float, 4> IgnorePaddingMaxPooling2dSize3Test(
176 armnn::IWorkloadFactory& workloadFactory,
177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
179 LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
180 armnn::IWorkloadFactory& workloadFactory,
181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
183 LayerTestResult<float, 4> SimpleMaxPooling2dTest(
184 armnn::IWorkloadFactory& workloadFactory,
185 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
186 const armnn::DataLayout dataLayout);
188 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
189 armnn::IWorkloadFactory& workloadFactory,
190 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
191 const armnn::DataLayout dataLayout);
193 LayerTestResult<float, 4> SimpleAveragePooling2dTest(
194 armnn::IWorkloadFactory& workloadFactory,
195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
196 const armnn::DataLayout dataLayout);
198 LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
199 armnn::IWorkloadFactory& workloadFactory,
200 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
201 const armnn::DataLayout dataLayout);
203 LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
204 armnn::IWorkloadFactory& workloadFactory,
205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
206 bool forceNoPadding);
208 LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dTest(
209 armnn::IWorkloadFactory& workloadFactory,
210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
212 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
213 armnn::IWorkloadFactory& workloadFactory,
214 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
216 LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
217 armnn::IWorkloadFactory& workloadFactory,
218 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
220 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
221 armnn::IWorkloadFactory& workloadFactory,
222 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
224 LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3Test(
225 armnn::IWorkloadFactory& workloadFactory,
226 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
228 LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
229 armnn::IWorkloadFactory& workloadFactory,
230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
232 LayerTestResult<float, 4> SimpleL2Pooling2dTest(
233 armnn::IWorkloadFactory& workloadFactory,
234 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
235 const armnn::DataLayout dataLayout);
237 LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
238 armnn::IWorkloadFactory& workloadFactory,
239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
240 const armnn::DataLayout dataLayout);
242 LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(
243 armnn::IWorkloadFactory& workloadFactory,
244 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
246 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
247 armnn::IWorkloadFactory& workloadFactory,
248 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
250 LayerTestResult<float, 4> L2Pooling2dSize3Stride3Test(
251 armnn::IWorkloadFactory& workloadFactory,
252 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
254 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
255 armnn::IWorkloadFactory& workloadFactory,
256 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
258 LayerTestResult<float, 4> L2Pooling2dSize3Stride4Test(
259 armnn::IWorkloadFactory& workloadFactory,
260 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
262 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
263 armnn::IWorkloadFactory& workloadFactory,
264 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
266 LayerTestResult<float, 4> L2Pooling2dSize7Test(
267 armnn::IWorkloadFactory& workloadFactory,
268 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
270 LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
271 armnn::IWorkloadFactory& workloadFactory,
272 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
274 LayerTestResult<float, 4> L2Pooling2dSize9Test(
275 armnn::IWorkloadFactory& workloadFactory,
276 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
278 LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
279 armnn::IWorkloadFactory& workloadFactory,
280 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
282 LayerTestResult<float, 4> LargeTensorsAveragePooling2dTest(
283 armnn::IWorkloadFactory& workloadFactory,
284 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
286 LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
287 armnn::IWorkloadFactory& workloadFactory,
288 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
290 LayerTestResult<float, 4> IgnorePaddingSimpleL2Pooling2dTest(
291 armnn::IWorkloadFactory& workloadFactory,
292 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
294 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
295 armnn::IWorkloadFactory& workloadFactory,
296 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
298 LayerTestResult<float, 4> IgnorePaddingL2Pooling2dSize3Test(
299 armnn::IWorkloadFactory& workloadFactory,
300 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
302 LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
303 armnn::IWorkloadFactory& workloadFactory,
304 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
306 LayerTestResult<float, 4> AsymmetricNonSquarePooling2dTest(
307 armnn::IWorkloadFactory& workloadFactory,
308 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
310 LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
311 armnn::IWorkloadFactory& workloadFactory,
312 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
314 LayerTestResult<float, 4> ComparePooling2dTest(
315 armnn::IWorkloadFactory& workloadFactory,
316 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
317 armnn::IWorkloadFactory& refWorkloadFactory,
318 armnn::PoolingAlgorithm poolingType);
320 LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
321 armnn::IWorkloadFactory& workloadFactory,
322 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
323 armnn::IWorkloadFactory& refWorkloadFactory,
324 armnn::PoolingAlgorithm poolingType);
326 LayerTestResult<float, 4> ConstantLinearActivationTest(
327 armnn::IWorkloadFactory& workloadFactory,
328 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
330 LayerTestResult<float, 4> SimpleNormalizationAcrossTest(
331 armnn::IWorkloadFactory& workloadFactory,
332 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
334 LayerTestResult<float, 4> SimpleNormalizationWithinTest(
335 armnn::IWorkloadFactory& workloadFactory,
336 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
338 LayerTestResult<float,4> SimpleNormalizationAcrossNhwcTest(
339 armnn::IWorkloadFactory& workloadFactory,
340 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
342 LayerTestResult<float, 2> SimpleSoftmaxTest(
343 armnn::IWorkloadFactory& workloadFactory,
344 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
347 LayerTestResult<float, 3> Simple3dSoftmaxTest(
348 armnn::IWorkloadFactory& workloadFactory,
349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
352 LayerTestResult<float, 4> Simple4dSoftmaxTest(
353 armnn::IWorkloadFactory& workloadFactory,
354 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
357 LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
358 armnn::IWorkloadFactory& workloadFactory,
359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
362 LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test(
363 armnn::IWorkloadFactory& workloadFactory,
364 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
367 LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
372 LayerTestResult<int16_t,2> SimpleSoftmaxUint16Test(
373 armnn::IWorkloadFactory& workloadFactory,
374 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
377 LayerTestResult<int16_t,3> Simple3dSoftmaxUint16Test(
378 armnn::IWorkloadFactory& workloadFactory,
379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
382 LayerTestResult<int16_t,4> Simple4dSoftmaxUint16Test(
383 armnn::IWorkloadFactory& workloadFactory,
384 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
387 LayerTestResult<float, 4> SimpleSigmoidTest(
388 armnn::IWorkloadFactory& workloadFactory,
389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
391 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
392 LayerTestResult<T, 4> SimpleReshapeTest(
393 armnn::IWorkloadFactory& workloadFactory,
394 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
396 LayerTestResult<float, 4> SimpleFloorTest(
397 armnn::IWorkloadFactory& workloadFactory,
398 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
400 LayerTestResult<float, 1> Concatenation1dTest(
401 armnn::IWorkloadFactory& workloadFactory,
402 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
404 LayerTestResult<float, 2> Concatenation2dDim0Test(
405 armnn::IWorkloadFactory& workloadFactory,
406 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
408 LayerTestResult<float, 2> Concatenation2dDim1Test(
409 armnn::IWorkloadFactory& workloadFactory,
410 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
412 LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
413 armnn::IWorkloadFactory& workloadFactory,
414 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
416 LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
417 armnn::IWorkloadFactory& workloadFactory,
418 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
420 LayerTestResult<float, 3> Concatenation3dDim0Test(
421 armnn::IWorkloadFactory& workloadFactory,
422 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
424 LayerTestResult<float, 3> Concatenation3dDim1Test(
425 armnn::IWorkloadFactory& workloadFactory,
426 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
428 LayerTestResult<float, 3> Concatenation3dDim2Test(
429 armnn::IWorkloadFactory& workloadFactory,
430 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
433 LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
434 armnn::IWorkloadFactory& workloadFactory,
435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
437 LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
438 armnn::IWorkloadFactory& workloadFactory,
439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
441 LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
442 armnn::IWorkloadFactory& workloadFactory,
443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
446 LayerTestResult<float, 4> Concatenation4dDim0Test(
447 armnn::IWorkloadFactory& workloadFactory,
448 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
450 LayerTestResult<float, 4> Concatenation4dDim1Test(
451 armnn::IWorkloadFactory& workloadFactory,
452 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
454 LayerTestResult<float, 4> Concatenation4dDim2Test(
455 armnn::IWorkloadFactory& workloadFactory,
456 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
458 LayerTestResult<float, 4> Concatenation4dDim3Test(
459 armnn::IWorkloadFactory& workloadFactory,
460 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
463 LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
464 armnn::IWorkloadFactory& workloadFactory,
465 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
467 LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
468 armnn::IWorkloadFactory& workloadFactory,
469 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
471 LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
472 armnn::IWorkloadFactory& workloadFactory,
473 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
475 LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
476 armnn::IWorkloadFactory& workloadFactory,
477 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
480 LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
481 armnn::IWorkloadFactory& workloadFactory,
482 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
484 LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
485 armnn::IWorkloadFactory& workloadFactory,
486 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
488 LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
489 armnn::IWorkloadFactory& workloadFactory,
490 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
492 LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
493 armnn::IWorkloadFactory& workloadFactory,
494 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
497 LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
498 armnn::IWorkloadFactory& workloadFactory,
499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
501 LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
502 armnn::IWorkloadFactory& workloadFactory,
503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
505 LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
506 armnn::IWorkloadFactory& workloadFactory,
507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
509 LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
510 armnn::IWorkloadFactory& workloadFactory,
511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
514 LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
515 armnn::IWorkloadFactory& workloadFactory,
516 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
518 LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
519 armnn::IWorkloadFactory& workloadFactory,
520 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
522 LayerTestResult<float, 4> CompareConvolution2dTest(
523 armnn::IWorkloadFactory& workloadFactory,
524 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
525 armnn::IWorkloadFactory& refWorkloadFactory);
528 LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
529 armnn::IWorkloadFactory& workloadFactory,
530 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
531 armnn::IWorkloadFactory& refWorkloadFactory,
532 const armnn::DataLayout layout);
534 LayerTestResult<float, 4> CompareNormalizationTest(
535 armnn::IWorkloadFactory& workloadFactory,
536 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
537 armnn::IWorkloadFactory& refWorkloadFactory,
538 armnn::NormalizationAlgorithmChannel normChannel,
539 armnn::NormalizationAlgorithmMethod normMethod);
541 LayerTestResult<float, 2> CompareSoftmaxTest(
542 armnn::IWorkloadFactory& workloadFactory,
543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
544 armnn::IWorkloadFactory& refWorkloadFactory,
547 LayerTestResult<float, 2> FullyConnectedFloat32Test(
548 armnn::IWorkloadFactory& workloadFactory,
549 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
551 bool transposeWeights);
553 std::vector<LayerTestResult<float, 3>> SplitterTest(
554 armnn::IWorkloadFactory& workloadFactory,
555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
557 LayerTestResult<float, 3> CopyViaSplitterTest(
558 armnn::IWorkloadFactory& workloadFactory,
559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
561 LayerTestResult<float, 3> ConcatTest(
562 armnn::IWorkloadFactory& workloadFactory,
563 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
565 LayerTestResult<float, 4> AdditionTest(
566 armnn::IWorkloadFactory& workloadFactory,
567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
569 LayerTestResult<float, 4> AdditionBroadcast1ElementTest(
570 armnn::IWorkloadFactory& workloadFactory,
571 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
573 LayerTestResult<float, 4> AdditionBroadcastTest(
574 armnn::IWorkloadFactory& workloadFactory,
575 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
577 LayerTestResult<float, 4> CompareAdditionTest(
578 armnn::IWorkloadFactory& workloadFactory,
579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
580 armnn::IWorkloadFactory& refWorkloadFactory);
582 LayerTestResult<float, 4> SubtractionTest(
583 armnn::IWorkloadFactory& workloadFactory,
584 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
586 LayerTestResult<float, 4> SubtractionBroadcast1ElementTest(
587 armnn::IWorkloadFactory& workloadFactory,
588 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
590 LayerTestResult<float, 4> SubtractionBroadcastTest(
591 armnn::IWorkloadFactory& workloadFactory,
592 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
594 LayerTestResult<float, 4> CompareActivationTest(
595 armnn::IWorkloadFactory& workloadFactory,
596 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
597 armnn::IWorkloadFactory& refWorkloadFactory,
598 armnn::ActivationFunction f,
599 unsigned int batchSize);
601 LayerTestResult<float, 4> DivisionTest(
602 armnn::IWorkloadFactory& workloadFactory,
603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
605 LayerTestResult<float, 4> DivisionByZeroTest(
606 armnn::IWorkloadFactory& workloadFactory,
607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
609 LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
610 armnn::IWorkloadFactory& workloadFactory,
611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
613 LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
614 armnn::IWorkloadFactory& workloadFactory,
615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
617 LayerTestResult<float, 4> MultiplicationTest(
618 armnn::IWorkloadFactory& workloadFactory,
619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
621 LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
622 armnn::IWorkloadFactory& workloadFactory,
623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
625 LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
626 armnn::IWorkloadFactory& workloadFactory,
627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
629 LayerTestResult<float, 4> CompareMultiplicationTest(
630 armnn::IWorkloadFactory& workloadFactory,
631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
632 armnn::IWorkloadFactory& refWorkloadFactory);
634 LayerTestResult<float, 4> BatchNormTest(
635 armnn::IWorkloadFactory& workloadFactory,
636 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
638 LayerTestResult<float, 4> BatchNormNhwcTest(
639 armnn::IWorkloadFactory& workloadFactory,
640 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
642 LayerTestResult<float, 4> CompareBatchNormTest(
643 armnn::IWorkloadFactory& workloadFactory,
644 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
645 armnn::IWorkloadFactory& refWorkloadFactory);
647 LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
648 armnn::IWorkloadFactory& workloadFactory,
649 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
651 LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
652 armnn::IWorkloadFactory& workloadFactor,
653 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
655 LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
656 armnn::IWorkloadFactory& workloadFactory,
657 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
659 LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
660 armnn::IWorkloadFactory& workloadFactory,
661 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
663 LayerTestResult<float, 4> CompareBoundedReLuTest(
664 armnn::IWorkloadFactory& workloadFactory,
665 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
666 armnn::IWorkloadFactory& refWorkloadFactory,
671 LayerTestResult<int16_t, 4> ReLuInt16Test(
672 armnn::IWorkloadFactory& workloadFactory,
673 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
675 LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
676 armnn::IWorkloadFactory& workloadFactory,
677 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
679 LayerTestResult<int16_t, 4> SoftReLuInt16Test(
680 armnn::IWorkloadFactory& workloadFactory,
681 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
683 LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
684 armnn::IWorkloadFactory& workloadFactory,
685 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
687 LayerTestResult<int16_t, 4> AbsInt16Test(
688 armnn::IWorkloadFactory& workloadFactory,
689 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
691 LayerTestResult<int16_t, 4> SqrtInt16Test(
692 armnn::IWorkloadFactory& workloadFactory,
693 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
695 LayerTestResult<int16_t, 4> SquareInt16Test(
696 armnn::IWorkloadFactory& workloadFactory,
697 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
699 LayerTestResult<int16_t, 4> TanhInt16Test(
700 armnn::IWorkloadFactory& workloadFactory,
701 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
704 // Tests that the output should be identical to the input when the output dimensions match the input ones.
705 LayerTestResult<float, 4> ResizeBilinearNopTest(
706 armnn::IWorkloadFactory& workloadFactory,
707 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
708 const armnn::DataLayout dataLayout);
710 // Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
711 LayerTestResult<float, 4> SimpleResizeBilinearTest(
712 armnn::IWorkloadFactory& workloadFactory,
713 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
714 const armnn::DataLayout dataLayout);
716 // Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
717 // multiple of output dimensions).
718 LayerTestResult<float, 4> ResizeBilinearSqMinTest(
719 armnn::IWorkloadFactory& workloadFactory,
720 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
721 const armnn::DataLayout dataLayout);
723 // Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
724 LayerTestResult<float, 4> ResizeBilinearMinTest(
725 armnn::IWorkloadFactory& workloadFactory,
726 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
727 const armnn::DataLayout dataLayout);
729 // Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
730 LayerTestResult<float, 4> ResizeBilinearMagTest(
731 armnn::IWorkloadFactory& workloadFactory,
732 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
733 const armnn::DataLayout dataLayout);
735 LayerTestResult<float, 2> Rsqrt2dTestCommon(
736 armnn::IWorkloadFactory& workloadFactory,
737 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
738 const armnn::TensorInfo inputTensorInfo,
739 const armnn::TensorInfo outputTensorInfo,
740 std::vector<float> inputValues,
741 std::vector<float> expectedOutputValues);
743 LayerTestResult<float, 2> Rsqrt2dTest(
744 armnn::IWorkloadFactory& workloadFactory,
745 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
747 LayerTestResult<float, 3> Rsqrt3dTest(
748 armnn::IWorkloadFactory& workloadFactory,
749 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
751 LayerTestResult<float, 2> RsqrtZeroTest(
752 armnn::IWorkloadFactory& workloadFactory,
753 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
755 LayerTestResult<float, 2> RsqrtNegativeTest(
756 armnn::IWorkloadFactory& workloadFactory,
757 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
759 LayerTestResult<float, 4> BatchNormTest(
760 armnn::IWorkloadFactory& workloadFactory,
761 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
763 LayerTestResult<float, 4> BatchNormNhwcTest(
764 armnn::IWorkloadFactory& workloadFactory,
765 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
767 LayerTestResult<float, 2> FakeQuantizationTest(
768 armnn::IWorkloadFactory& workloadFactory,
769 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
771 LayerTestResult<float, 4> L2Normalization1dTest(
772 armnn::IWorkloadFactory& workloadFactory,
773 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
774 const armnn::DataLayout layout);
776 LayerTestResult<float, 4> L2Normalization2dTest(
777 armnn::IWorkloadFactory& workloadFactory,
778 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
779 const armnn::DataLayout layout);
781 LayerTestResult<float, 4> L2Normalization3dTest(
782 armnn::IWorkloadFactory& workloadFactory,
783 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
784 const armnn::DataLayout layout);
786 LayerTestResult<float, 4> L2Normalization4dTest(
787 armnn::IWorkloadFactory& workloadFactory,
788 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
789 const armnn::DataLayout layout);
791 LayerTestResult<float, 4> ConstantTest(
792 armnn::IWorkloadFactory& workloadFactory,
793 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
795 LayerTestResult<uint8_t, 4> ConstantUint8SimpleQuantizationScaleNoOffsetTest(
796 armnn::IWorkloadFactory& workloadFactory,
797 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
799 LayerTestResult<int16_t, 4> ConstantInt16SimpleQuantizationScaleNoOffsetTest(
800 armnn::IWorkloadFactory& workloadFactory,
801 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
803 LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
804 armnn::IWorkloadFactory& workloadFactory,
805 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
808 LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
809 armnn::IWorkloadFactory& workloadFactory,
810 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
814 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
815 LayerTestResult<T, 2> FullyConnectedTest(
816 armnn::IWorkloadFactory& workloadFactory,
817 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
820 std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
821 armnn::IWorkloadFactory& workloadFactory,
822 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
824 LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
825 armnn::IWorkloadFactory& workloadFactory,
826 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
828 LayerTestResult<uint8_t, 3> ConcatUint8Test(
829 armnn::IWorkloadFactory& workloadFactory,
830 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
832 LayerTestResult<uint16_t, 3> ConcatUint16Test(
833 armnn::IWorkloadFactory& workloadFactory,
834 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
836 LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest(
837 armnn::IWorkloadFactory& workloadFactory,
838 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
840 LayerTestResult<uint8_t, 4> AdditionUint8Test(
841 armnn::IWorkloadFactory& workloadFactory,
842 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
844 LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
845 armnn::IWorkloadFactory& workloadFactory,
846 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
848 LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
849 armnn::IWorkloadFactory& workloadFactory,
850 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
852 LayerTestResult<int16_t, 4> AdditionInt16Test(
853 armnn::IWorkloadFactory& workloadFactory,
854 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
856 LayerTestResult<int16_t, 4> AdditionBroadcastInt16Test(
857 armnn::IWorkloadFactory& workloadFactory,
858 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
860 LayerTestResult<int16_t, 4> AdditionBroadcast1ElementInt16Test(
861 armnn::IWorkloadFactory& workloadFactory,
862 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
864 LayerTestResult<uint8_t, 4> SubtractionUint8Test(
865 armnn::IWorkloadFactory& workloadFactory,
866 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
868 LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
872 LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
873 armnn::IWorkloadFactory& workloadFactory,
874 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
876 LayerTestResult<int16_t, 4> SubtractionInt16Test(
877 armnn::IWorkloadFactory& workloadFactory,
878 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
880 LayerTestResult<int16_t, 4> SubtractionBroadcast1ElementInt16Test(
881 armnn::IWorkloadFactory& workloadFactory,
882 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
884 LayerTestResult<int16_t, 4> SubtractionBroadcastInt16Test(
885 armnn::IWorkloadFactory& workloadFactory,
886 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
888 LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
889 armnn::IWorkloadFactory& workloadFactory,
890 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
891 armnn::IWorkloadFactory& refWorkloadFactory,
892 armnn::ActivationFunction f);
894 LayerTestResult<int16_t, 4> CompareActivationInt16Test(
895 armnn::IWorkloadFactory& workloadFactory,
896 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
897 armnn::IWorkloadFactory& refWorkloadFactory,
898 armnn::ActivationFunction f);
900 LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
901 armnn::IWorkloadFactory& workloadFactory,
902 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
903 armnn::IWorkloadFactory& refWorkloadFactory,
906 LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
907 armnn::IWorkloadFactory& workloadFactory,
908 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
910 LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
911 armnn::IWorkloadFactory& workloadFactory,
912 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
914 LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
915 armnn::IWorkloadFactory& workloadFactory,
916 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
918 LayerTestResult<int16_t, 4> MultiplicationInt16Test(
919 armnn::IWorkloadFactory& workloadFactory,
920 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
922 LayerTestResult<int16_t, 4> MultiplicationBroadcast1ElementInt16Test(
923 armnn::IWorkloadFactory& workloadFactory,
924 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
926 LayerTestResult<int16_t, 4> MultiplicationBroadcast1DVectorInt16Test(
927 armnn::IWorkloadFactory& workloadFactory,
928 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
930 LayerTestResult<uint8_t, 4> DivisionUint8Test(
931 armnn::IWorkloadFactory& workloadFactory,
932 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
934 LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
935 armnn::IWorkloadFactory& workloadFactory,
936 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
938 LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
939 armnn::IWorkloadFactory& workloadFactory,
940 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
942 LayerTestResult<int16_t, 4> DivisionInt16Test(
943 armnn::IWorkloadFactory& workloadFactory,
944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
946 LayerTestResult<int16_t, 4> DivisionBroadcast1ElementInt16Test(
947 armnn::IWorkloadFactory& workloadFactory,
948 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
950 LayerTestResult<int16_t, 4> DivisionBroadcast1DVectorInt16Test(
951 armnn::IWorkloadFactory& workloadFactory,
952 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
954 LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
955 armnn::IWorkloadFactory& workloadFactory,
956 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
958 const armnn::DataLayout layout);
960 LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
961 armnn::IWorkloadFactory& workloadFactory,
962 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
964 const armnn::DataLayout layout);
966 LayerTestResult<int16_t, 4> SimpleConvolution2d3x5QSymm16Test(
967 armnn::IWorkloadFactory& workloadFactory,
968 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
970 const armnn::DataLayout layout);
972 LayerTestResult<int16_t, 4> SimpleConvolution2d3x3QSymm16Test(
973 armnn::IWorkloadFactory& workloadFactory,
974 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
976 const armnn::DataLayout layout);
978 LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
979 armnn::IWorkloadFactory& workloadFactory,
980 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
982 const armnn::DataLayout layout);
984 LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
985 armnn::IWorkloadFactory& workloadFactory,
986 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
988 const armnn::DataLayout layout);
990 LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
991 armnn::IWorkloadFactory& workloadFactory,
992 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
994 const armnn::DataLayout layout);
996 LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
997 armnn::IWorkloadFactory& workloadFactory,
998 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1000 const armnn::DataLayout layout);
1002 LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
1003 armnn::IWorkloadFactory& workloadFactory,
1004 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1006 LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
1007 armnn::IWorkloadFactory& workloadFactory,
1008 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1010 LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
1011 armnn::IWorkloadFactory& workloadFactory,
1012 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1014 LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
1015 armnn::IWorkloadFactory& workloadFactory,
1016 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1018 LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
1019 armnn::IWorkloadFactory& workloadFactory,
1020 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1022 LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
1023 armnn::IWorkloadFactory& workloadFactory,
1024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1026 LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
1027 armnn::IWorkloadFactory& workloadFactory,
1028 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1030 LayerTestResult<uint8_t, 4> BatchNormUint8Test(
1031 armnn::IWorkloadFactory& workloadFactory,
1032 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1034 LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
1035 armnn::IWorkloadFactory& workloadFactory,
1036 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1038 LayerTestResult<uint8_t, 4> ConstantUint8CustomQuantizationScaleAndOffsetTest(
1039 armnn::IWorkloadFactory& workloadFactory,
1040 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1042 LayerTestResult<int16_t, 4> ConstantInt16CustomQuantizationScaleAndOffsetTest(
1043 armnn::IWorkloadFactory& workloadFactory,
1044 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1046 LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
1047 armnn::IWorkloadFactory& workloadFactory,
1048 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1050 LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
1051 armnn::IWorkloadFactory& workloadFactory,
1052 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1054 LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
1055 armnn::IWorkloadFactory& workloadFactory,
1056 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1058 LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
1059 armnn::IWorkloadFactory& workloadFactory,
1060 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1062 LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
1063 armnn::IWorkloadFactory& workloadFactory,
1064 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1066 LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
1067 armnn::IWorkloadFactory& workloadFactory,
1068 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1070 LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
1071 armnn::IWorkloadFactory& workloadFactory,
1072 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1074 LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
1075 armnn::IWorkloadFactory& workloadFactory,
1076 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1079 LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
1080 armnn::IWorkloadFactory& workloadFactory,
1081 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1083 LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
1084 armnn::IWorkloadFactory& workloadFactory,
1085 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1087 LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
1088 armnn::IWorkloadFactory& workloadFactory,
1089 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1092 LayerTestResult<uint8_t, 4> EqualSimpleTest(
1093 armnn::IWorkloadFactory& workloadFactory,
1094 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1096 LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
1097 armnn::IWorkloadFactory& workloadFactory,
1098 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1100 LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
1101 armnn::IWorkloadFactory& workloadFactory,
1102 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1104 LayerTestResult<uint8_t, 4> EqualUint8Test(
1105 armnn::IWorkloadFactory& workloadFactory,
1106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1108 LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
1109 armnn::IWorkloadFactory& workloadFactory,
1110 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1112 LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
1113 armnn::IWorkloadFactory& workloadFactory,
1114 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1116 LayerTestResult<uint8_t, 4> GreaterSimpleTest(
1117 armnn::IWorkloadFactory& workloadFactory,
1118 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1120 LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
1121 armnn::IWorkloadFactory& workloadFactory,
1122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1124 LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
1125 armnn::IWorkloadFactory& workloadFactory,
1126 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1128 LayerTestResult<uint8_t, 4> GreaterUint8Test(
1129 armnn::IWorkloadFactory& workloadFactory,
1130 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1132 LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
1133 armnn::IWorkloadFactory& workloadFactory,
1134 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1136 LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
1137 armnn::IWorkloadFactory& workloadFactory,
1138 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1140 LayerTestResult<float, 2> FullyConnectedLargeTest(
1141 armnn::IWorkloadFactory& workloadFactory,
1142 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1143 bool transposeWeights);
1145 LayerTestResult<float, 4> SimplePermuteFloat32Test(
1146 armnn::IWorkloadFactory& workloadFactory,
1147 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1149 LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
1150 armnn::IWorkloadFactory& workloadFactory,
1151 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1153 LayerTestResult<uint8_t, 2> PadUint82dTest(
1154 armnn::IWorkloadFactory& workloadFactory,
1155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1157 LayerTestResult<uint8_t, 3> PadUint83dTest(
1158 armnn::IWorkloadFactory& workloadFactory,
1159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1161 LayerTestResult<uint8_t, 4> PadUint84dTest(
1162 armnn::IWorkloadFactory& workloadFactory,
1163 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1165 LayerTestResult<float, 2> PadFloat322dTest(
1166 armnn::IWorkloadFactory& workloadFactory,
1167 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1169 LayerTestResult<float, 3> PadFloat323dTest(
1170 armnn::IWorkloadFactory& workloadFactory,
1171 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1173 LayerTestResult<float, 4> PadFloat324dTest(
1174 armnn::IWorkloadFactory& workloadFactory,
1175 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1177 LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1178 armnn::IWorkloadFactory& workloadFactory,
1179 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1181 LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1182 armnn::IWorkloadFactory& workloadFactory,
1183 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1185 LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1186 armnn::IWorkloadFactory& workloadFactory,
1187 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1189 LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1190 armnn::IWorkloadFactory& workloadFactory,
1191 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1193 LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1194 armnn::IWorkloadFactory& workloadFactory,
1195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1197 LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1198 armnn::IWorkloadFactory& workloadFactory,
1199 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1201 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
1202 armnn::IWorkloadFactory& workloadFactory,
1203 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1205 LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
1206 armnn::IWorkloadFactory& workloadFactory,
1207 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1209 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
1210 armnn::IWorkloadFactory& workloadFactory,
1211 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1213 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
1214 armnn::IWorkloadFactory& workloadFactory,
1215 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1217 LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1218 armnn::IWorkloadFactory& workloadFactory,
1219 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1221 LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1222 armnn::IWorkloadFactory& workloadFactory,
1223 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1225 LayerTestResult<float, 4> MaximumSimpleTest(
1226 armnn::IWorkloadFactory& workloadFactory,
1227 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1229 LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1230 armnn::IWorkloadFactory& workloadFactory,
1231 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1233 LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1234 armnn::IWorkloadFactory& workloadFactory,
1235 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1237 LayerTestResult<uint8_t , 4> MaximumUint8Test(
1238 armnn::IWorkloadFactory& workloadFactory,
1239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1241 LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1242 armnn::IWorkloadFactory& workloadFactory,
1243 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1245 LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1246 armnn::IWorkloadFactory& workloadFactory,
1247 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1249 LayerTestResult<int16_t , 4> MaximumInt16Test(
1250 armnn::IWorkloadFactory& workloadFactory,
1251 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1253 LayerTestResult<int16_t, 4> MaximumBroadcast1ElementInt16Test(
1254 armnn::IWorkloadFactory& workloadFactory,
1255 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1257 LayerTestResult<int16_t, 4> MaximumBroadcast1DVectorInt16Test(
1258 armnn::IWorkloadFactory& workloadFactory,
1259 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1261 LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1262 armnn::IWorkloadFactory& workloadFactory,
1263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1265 LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1266 armnn::IWorkloadFactory& workloadFactory,
1267 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1269 LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1270 armnn::IWorkloadFactory& workloadFactory,
1271 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1273 LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1274 armnn::IWorkloadFactory& workloadFactory,
1275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1277 LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1278 armnn::IWorkloadFactory& workloadFactory,
1279 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1281 LayerTestResult<float, 1> MeanFloatSimpleTest(
1282 armnn::IWorkloadFactory& workloadFactory,
1283 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1285 LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1286 armnn::IWorkloadFactory& workloadFactory,
1287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1289 LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1290 armnn::IWorkloadFactory& workloadFactory,
1291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1293 LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1294 armnn::IWorkloadFactory& workloadFactory,
1295 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1297 LayerTestResult<float, 1> MeanVtsFloat1Test(
1298 armnn::IWorkloadFactory& workloadFactory,
1299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1301 LayerTestResult<float, 3> MeanVtsFloat2Test(
1302 armnn::IWorkloadFactory& workloadFactory,
1303 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1305 LayerTestResult<float, 3> MeanVtsFloat3Test(
1306 armnn::IWorkloadFactory& workloadFactory,
1307 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1309 LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1310 armnn::IWorkloadFactory& workloadFactory,
1311 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1313 LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1314 armnn::IWorkloadFactory& workloadFactory,
1315 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1317 LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1318 armnn::IWorkloadFactory & workloadFactory,
1319 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1321 LayerTestResult<int16_t , 4> MinimumInt16Test(
1322 armnn::IWorkloadFactory& workloadFactory,
1323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1325 LayerTestResult<int16_t, 4> MinimumBroadcast1ElementInt16Test(
1326 armnn::IWorkloadFactory& workloadFactory,
1327 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1329 LayerTestResult<int16_t, 4> MinimumBroadcast1DVectorInt16Test(
1330 armnn::IWorkloadFactory& workloadFactory,
1331 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1333 LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1334 armnn::IWorkloadFactory& workloadFactory,
1335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1337 LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1338 armnn::IWorkloadFactory& workloadFactory,
1339 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1341 LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1342 armnn::IWorkloadFactory& workloadFactory,
1343 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1345 LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1346 armnn::IWorkloadFactory& workloadFactory,
1347 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1349 LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1350 armnn::IWorkloadFactory& workloadFactory,
1351 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1353 LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1354 armnn::IWorkloadFactory& workloadFactory,
1355 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1357 LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1358 armnn::IWorkloadFactory& workloadFactory,
1359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1361 LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1362 armnn::IWorkloadFactory& workloadFactory,
1363 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1365 LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1366 armnn::IWorkloadFactory& workloadFactory,
1367 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1369 LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1370 armnn::IWorkloadFactory& workloadFactory,
1371 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1373 LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1374 armnn::IWorkloadFactory& workloadFactory,
1375 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1377 LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1378 armnn::IWorkloadFactory& workloadFactory,
1379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1381 LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1382 armnn::IWorkloadFactory& workloadFactory,
1383 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1385 LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1386 armnn::IWorkloadFactory& workloadFactory,
1387 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1389 LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1390 armnn::IWorkloadFactory& workloadFactory,
1391 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1393 LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1394 armnn::IWorkloadFactory& workloadFactory,
1395 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1397 LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1398 armnn::IWorkloadFactory& workloadFactory,
1399 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1401 LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1402 armnn::IWorkloadFactory& workloadFactory,
1403 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1405 LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1406 armnn::IWorkloadFactory& workloadFactory,
1407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1409 LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1410 armnn::IWorkloadFactory& workloadFactory,
1411 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1413 LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test4(
1414 armnn::IWorkloadFactory& workloadFactory,
1415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1417 LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1418 armnn::IWorkloadFactory &workloadFactory,
1419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1421 LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
1422 armnn::IWorkloadFactory &workloadFactory,
1423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1425 LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
1426 armnn::IWorkloadFactory &workloadFactory,
1427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1429 LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1430 armnn::IWorkloadFactory &workloadFactory,
1431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1433 LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
1434 armnn::IWorkloadFactory &workloadFactory,
1435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1437 LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
1438 armnn::IWorkloadFactory &workloadFactory,
1439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1441 LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
1442 armnn::IWorkloadFactory &workloadFactory,
1443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1445 LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
1446 armnn::IWorkloadFactory &workloadFactory,
1447 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1449 LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
1450 armnn::IWorkloadFactory &workloadFactory,
1451 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1453 LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest4(
1454 armnn::IWorkloadFactory &workloadFactory,
1455 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1457 LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1458 armnn::IWorkloadFactory& workloadFactory,
1459 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1461 LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1462 armnn::IWorkloadFactory& workloadFactory,
1463 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1465 LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1466 armnn::IWorkloadFactory& workloadFactory,
1467 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1469 LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1470 armnn::IWorkloadFactory& workloadFactory,
1471 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1473 LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1474 armnn::IWorkloadFactory& workloadFactory,
1475 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1477 LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1478 armnn::IWorkloadFactory& workloadFactory,
1479 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1481 LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1482 armnn::IWorkloadFactory& workloadFactory,
1483 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1485 LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1486 armnn::IWorkloadFactory& workloadFactory,
1487 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1489 LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1490 armnn::IWorkloadFactory& workloadFactory,
1491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1493 LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1494 armnn::IWorkloadFactory& workloadFactory,
1495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1497 LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1498 armnn::IWorkloadFactory& workloadFactory,
1499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1501 LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1502 armnn::IWorkloadFactory& workloadFactory,
1503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1505 LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1506 armnn::IWorkloadFactory& workloadFactory,
1507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1509 LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1510 armnn::IWorkloadFactory& workloadFactory,
1511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1513 LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1514 armnn::IWorkloadFactory& workloadFactory,
1515 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1517 LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1518 armnn::IWorkloadFactory& workloadFactory,
1519 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1521 LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1522 armnn::IWorkloadFactory& workloadFactory,
1523 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1525 LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1526 armnn::IWorkloadFactory& workloadFactory,
1527 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1529 LayerTestResult<float, 4> Debug4DFloat32Test(
1530 armnn::IWorkloadFactory& workloadFactory,
1531 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1533 LayerTestResult<float, 3> Debug3DFloat32Test(
1534 armnn::IWorkloadFactory& workloadFactory,
1535 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1537 LayerTestResult<float, 2> Debug2DFloat32Test(
1538 armnn::IWorkloadFactory& workloadFactory,
1539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1541 LayerTestResult<float, 1> Debug1DFloat32Test(
1542 armnn::IWorkloadFactory& workloadFactory,
1543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1545 LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1546 armnn::IWorkloadFactory& workloadFactory,
1547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1549 LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1550 armnn::IWorkloadFactory& workloadFactory,
1551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1553 LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1554 armnn::IWorkloadFactory& workloadFactory,
1555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1557 LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1558 armnn::IWorkloadFactory& workloadFactory,
1559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1561 LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1562 armnn::IWorkloadFactory& workloadFactory,
1563 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1565 LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1566 armnn::IWorkloadFactory& workloadFactory,
1567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1569 LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1570 armnn::IWorkloadFactory & workloadFactory,
1571 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1573 LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1574 armnn::IWorkloadFactory & workloadFactory,
1575 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1577 LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1578 armnn::IWorkloadFactory& workloadFactory,
1579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1581 LayerTestResult<float, 4> Debug4DFloat32Test(
1582 armnn::IWorkloadFactory& workloadFactory,
1583 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1585 LayerTestResult<float, 3> Debug3DFloat32Test(
1586 armnn::IWorkloadFactory& workloadFactory,
1587 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1589 LayerTestResult<float, 2> Debug2DFloat32Test(
1590 armnn::IWorkloadFactory& workloadFactory,
1591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1593 LayerTestResult<float, 1> Debug1DFloat32Test(
1594 armnn::IWorkloadFactory& workloadFactory,
1595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1597 LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1598 armnn::IWorkloadFactory& workloadFactory,
1599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1601 LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1602 armnn::IWorkloadFactory& workloadFactory,
1603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1605 LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1606 armnn::IWorkloadFactory& workloadFactory,
1607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1609 LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1610 armnn::IWorkloadFactory& workloadFactory,
1611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1613 LayerTestResult<float, 1> Gather1DParamsFloatTest(
1614 armnn::IWorkloadFactory& workloadFactory,
1615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1617 LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1618 armnn::IWorkloadFactory& workloadFactory,
1619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1621 LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1622 armnn::IWorkloadFactory& workloadFactory,
1623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1625 LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1626 armnn::IWorkloadFactory& workloadFactory,
1627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1629 LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1630 armnn::IWorkloadFactory& workloadFactory,
1631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1633 LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1634 armnn::IWorkloadFactory& workloadFactory,
1635 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1637 LayerTestResult<float, 4> DequantizeSimpleUint8Test(
1638 armnn::IWorkloadFactory& workloadFactory,
1639 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1641 LayerTestResult<float, 4> DequantizeOffsetUint8Test(
1642 armnn::IWorkloadFactory& workloadFactory,
1643 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1645 LayerTestResult<float, 4> DequantizeSimpleInt16Test(
1646 armnn::IWorkloadFactory& workloadFactory,
1647 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1649 LayerTestResult<uint8_t, 4> QuantizeSimpleUint8Test(
1650 armnn::IWorkloadFactory& workloadFactory,
1651 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1653 LayerTestResult<uint8_t, 4> QuantizeClampUint8Test(
1654 armnn::IWorkloadFactory& workloadFactory,
1655 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1657 LayerTestResult<int16_t, 4> QuantizeClampInt16Test(
1658 armnn::IWorkloadFactory& workloadFactory,
1659 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1661 template<typename T, typename B>
1662 LayerTestResult<T, 2> SimpleFullyConnectedTestImpl(
1663 armnn::IWorkloadFactory& workloadFactory,
1664 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1665 armnn::TensorInfo inputTensorInfo,
1666 armnn::TensorInfo outputTensorInfo,
1667 armnn::TensorInfo weightsDesc,
1668 armnn::TensorInfo biasesDesc,
1669 boost::multi_array<T, 2>& weights,
1670 boost::multi_array<B, 1>& bias,
1671 boost::multi_array<T, 4>& input,
1673 bool transposeWeights)
1675 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1676 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1678 armnn::FullyConnectedQueueDescriptor data;
1679 armnn::WorkloadInfo info;
1680 armnn::ScopedCpuTensorHandle weightsTensor(weightsDesc);
1681 armnn::ScopedCpuTensorHandle biasTensor(biasesDesc);
1683 AllocateAndCopyDataToITensorHandle(&weightsTensor, &weights[0][0]);
1684 AllocateAndCopyDataToITensorHandle(&biasTensor, &bias[0]);
1686 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1687 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1688 data.m_Weight = &weightsTensor;
1689 data.m_Bias = &biasTensor;
1690 data.m_Parameters.m_BiasEnabled = biasEnabled;
1691 data.m_Parameters.m_TransposeWeightMatrix = transposeWeights;
1693 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFullyConnected(data, info);
1694 LayerTestResult<T, 2> result(outputTensorInfo);
1696 inputHandle->Allocate();
1697 outputHandle->Allocate();
1698 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1700 ExecuteWorkload(*workload, memoryManager);
1702 CopyDataFromITensorHandle(&result.output[0][0], outputHandle.get());
1707 template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
1708 std::vector<T> ConvertToDataType(const std::vector<float>& input,
1709 const armnn::TensorInfo& inputTensorInfo)
1711 std::vector<T> output(input.size());
1712 auto outputTensorInfo = inputTensorInfo;
1713 outputTensorInfo.SetDataType(ArmnnType);
1715 std::unique_ptr<armnn::Encoder<float>> pOutputEncoder = armnn::MakeEncoder<float>(outputTensorInfo, output.data());
1716 armnn::Encoder<float>& rOutputEncoder = *pOutputEncoder;
1718 for (auto it = input.begin(); it != input.end(); ++it)
1720 rOutputEncoder.Set(*it);
1726 template<typename T>
1727 LayerTestResult<T, 4> SimpleReshapeTestImpl(
1728 armnn::IWorkloadFactory& workloadFactory,
1729 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1730 armnn::TensorInfo inputTensorInfo,
1731 armnn::TensorInfo outputTensorInfo,
1732 const std::vector<T>& inputData,
1733 const std::vector<T>& outputExpectedData)
1735 auto input = MakeTensor<T, 4>(inputTensorInfo, inputData);
1737 LayerTestResult<T, 4> ret(outputTensorInfo);
1738 ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo, outputExpectedData);
1740 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1741 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1743 armnn::ReshapeQueueDescriptor data;
1744 armnn::WorkloadInfo info;
1745 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1746 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1748 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReshape(data, info);
1750 inputHandle->Allocate();
1751 outputHandle->Allocate();
1753 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1755 workload->Execute();
1757 CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
1762 template<armnn::DataType ArmnnType, typename T>
1763 LayerTestResult<T, 2> FullyConnectedTest(
1764 armnn::IWorkloadFactory& workloadFactory,
1765 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1768 constexpr static unsigned int inputWidth = 3u;
1769 constexpr static unsigned int inputHeight = 2u;
1770 constexpr static unsigned int inputChannels = 1u;
1772 constexpr static unsigned int inputSize = inputWidth * inputHeight * inputChannels;
1774 constexpr static unsigned int outputChannels = 2u;
1776 armnn::TensorInfo inputTensorInfo({ 1, inputChannels, inputHeight, inputWidth }, ArmnnType);
1777 inputTensorInfo.SetQuantizationScale(0.1f);
1778 inputTensorInfo.SetQuantizationOffset(63);
1780 armnn::TensorInfo outputTensorInfo({ 1, outputChannels }, ArmnnType);
1781 outputTensorInfo.SetQuantizationScale(5.f);
1782 outputTensorInfo.SetQuantizationOffset(biasEnabled ? -50 : 10);
1784 armnn::TensorInfo weightsDesc({ outputChannels, inputSize }, ArmnnType);
1785 weightsDesc.SetQuantizationScale(0.2f);
1786 weightsDesc.SetQuantizationOffset(93);
1788 armnn::TensorInfo biasesDesc({ outputChannels }, GetBiasTypeFromWeightsType(weightsDesc.GetDataType()).value());
1789 biasesDesc.SetQuantizationScale(inputTensorInfo.GetQuantizationScale() * weightsDesc.GetQuantizationScale());
1790 biasesDesc.SetQuantizationOffset(0);
1792 LayerTestResult<T, 2> result(outputTensorInfo);
1794 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
1801 auto weights = MakeTensor<T, 2>(weightsDesc, ConvertToDataType<ArmnnType>(
1803 -8.4f, 20.0f, -10.4f, -8, 16.4f, -11.8f,
1804 23.4f, 10.4f, -14.0f, -3.8f, -11.8f, 11.4f
1808 auto bias = MakeTensor<int32_t, 1>(biasesDesc, std::vector<int32_t>{9250, 67500});
1810 result = SimpleFullyConnectedTestImpl<T>(
1813 inputTensorInfo, outputTensorInfo,
1814 weightsDesc, biasesDesc,
1815 weights, bias, input,
1821 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1822 ConvertToDataType<ArmnnType>({80.f, 1460.f}, outputTensorInfo));
1826 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1827 ConvertToDataType<ArmnnType>({-107.04f, 110.f}, outputTensorInfo));
1834 template<armnn::DataType ArmnnType, typename T>
1835 LayerTestResult<T, 4> SimpleReshapeTest(
1836 armnn::IWorkloadFactory& workloadFactory,
1837 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
1839 armnn::TensorInfo inputTensorInfo;
1840 armnn::TensorInfo outputTensorInfo;
1842 unsigned int inputShape[] = { 2, 2, 3, 3 };
1843 unsigned int outputShape[] = { 2, 2, 9, 1 };
1845 inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
1846 inputTensorInfo.SetQuantizationScale(1.0f);
1847 outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
1848 outputTensorInfo.SetQuantizationScale(1.0f);
1850 auto input = ConvertToDataType<ArmnnType>(
1857 12.0f, 13.0f, 14.0f,
1858 15.0f, 16.0f, 17.0f,
1860 18.0f, 19.0f, 20.0f,
1861 21.0f, 22.0f, 23.0f,
1862 24.0f, 25.0f, 26.0f,
1864 27.0f, 28.0f, 29.0f,
1865 30.0f, 31.0f, 32.0f,
1866 33.0f, 34.0f, 35.0f,
1870 auto outputExpected = ConvertToDataType<ArmnnType>(
1872 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f,
1874 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f,
1876 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 26.0f,
1878 27.0f, 28.0f, 29.0f, 30.0f, 31.0f, 32.0f, 33.0f, 34.0f, 35.0f,
1882 return SimpleReshapeTestImpl<T>(
1883 workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected);