36 std::vector<T> tmp(src.size());
41 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
49 const std::vector<T>& input,
50 const std::vector<T>& outputExpected,
71 unsigned int outputChannels =
armnn::numeric_cast<
unsigned int>(outputShape[channelsIndex]);
75 inputBatchSize, inputChannels, inputDepth, inputHeight, inputWidth, dataLayout, ArmnnType);
78 outputBatchSize, outputChannels, outputDepth, outputHeight, outputWidth, dataLayout, ArmnnType);
81 if (armnn::IsQuantizedType<T>())
83 inputTensorInfo.SetQuantizationScale(qScale);
84 inputTensorInfo.SetQuantizationOffset(qOffset);
92 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
93 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
100 AddInputToWorkload(queueDescriptor, workloadInfo, inputTensorInfo, inputHandle.get());
101 AddOutputToWorkload(queueDescriptor, workloadInfo, outputTensorInfo, outputHandle.get());
105 std::string reasonIfUnsupported;
110 reasonIfUnsupported);
111 if (!result.m_Supported)
120 inputHandle->Allocate();
121 outputHandle->Allocate();
129 result.m_ActualData = actualOutput;
130 result.m_ExpectedData = outputExpected;
144 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
168 unsigned int inputWidth = 3;
169 unsigned int inputHeight = 3;
170 unsigned int inputDepth = 3;
171 unsigned int outputWidth =
174 unsigned int outputHeight =
177 unsigned int outputDepth =
180 unsigned int channels = 2;
181 unsigned int batchSize = 2;
184 inputWidth, dataLayout, ArmnnType);
186 outputWidth, dataLayout, ArmnnType);
189 if(armnn::IsQuantizedType<T>())
191 inputTensorInfo.SetQuantizationScale(qScale);
192 inputTensorInfo.SetQuantizationOffset(qOffset);
197 std::vector<float> singleChannelData({
212 std::vector<float> inputData;
213 auto negator = [](
float f) {
return -f; };
216 inputData.insert(inputData.end(), singleChannelData.begin(), singleChannelData.end());
217 std::transform(singleChannelData.begin(), singleChannelData.end(), std::back_inserter(inputData), negator);
220 inputData.insert(inputData.end(), singleChannelData.begin(), singleChannelData.end());
221 std::transform(singleChannelData.begin(), singleChannelData.end(), std::back_inserter(inputData), negator);
223 auto input = QuantizedVector<T>(inputData, qScale, qOffset);
226 std::vector<T> outputExpected = QuantizedVector<T>(
257 PermuteNCDHWToNDHWC(input, inputTensorInfo);
258 PermuteNCDHWToNDHWC(outputExpected, outputTensorInfo);
261 return SimplePooling3dTestImpl<ArmnnType>(
262 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
263 input, outputExpected, inputTensorInfo.GetShape(), outputTensorInfo.
GetShape());
266 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
286 if(armnn::IsQuantizedType<T>())
294 std::vector<T> inputData(
296 1.0f, 2.0f, 5.0f, 6.0f,
297 3.0f, 4.0f, 7.0f, 8.0f,
298 9.0f, 10.0f, 13.0f, 14.0f,
299 11.0f, 12.0f, 15.0f, 16.0f,
301 17.0f, 18.0f, 21.0f, 22.0f,
302 19.0f, 20.0f, 23.0f, 24.0f,
303 25.0f, 26.0f, 29.0f, 30.0f,
304 27.0f, 28.0f, 31.0f, 32.0f,
306 33.0f, 34.0f, 37.0f, 38.0f,
307 35.0f, 36.0f, 39.0f, 40.0f,
308 41.0f, 42.0f, 45.0f, 46.0f,
309 43.0f, 44.0f, 47.0f, 48.0f,
311 49.0f, 50.0f, 53.0f, 54.0f,
312 51.0f, 52.0f, 55.0f, 56.0f,
313 57.0f, 58.0f, 61.0f, 62.0f,
314 59.0f, 60.0f, 63.0f, 64.0f,
318 std::vector<T> outputData(
330 PermuteNCDHWToNDHWC(inputData, inputTensorInfo);
331 PermuteNCDHWToNDHWC(outputData, outputTensorInfo);
334 return SimplePooling3dTestImpl<ArmnnType>(
335 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
336 inputData, outputData, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
339 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
365 if(armnn::IsQuantizedType<T>())
373 auto input = QuantizedVector<T>(
375 -1.0f, -2.0f, 3.0f, 4.0f,
376 -1.0f, -2.0f, 3.0f, 4.0f,
377 1.0f, 2.0f, -3.0f, -4.0f,
378 1.0f, 2.0f, -3.0f, -4.0f,
380 -1.0f, -2.0f, 3.0f, 4.0f,
381 -1.0f, -2.0f, 3.0f, 4.0f,
382 1.0f, 2.0f, -3.0f, -4.0f,
383 1.0f, 2.0f, -3.0f, -4.0f,
385 -1.0f, -2.0f, 3.0f, 4.0f,
386 -1.0f, -2.0f, 3.0f, 4.0f,
387 1.0f, 2.0f, -3.0f, -4.0f,
388 1.0f, 2.0f, -3.0f, -4.0f,
390 -1.0f, -2.0f, 3.0f, 4.0f,
391 -1.0f, -2.0f, 3.0f, 4.0f,
392 1.0f, 2.0f, -3.0f, -4.0f,
393 1.0f, 2.0f, -3.0f, -4.0f,
397 auto outputExpected = QuantizedVector<T>(
415 PermuteNCDHWToNDHWC(input, inputTensorInfo);
416 PermuteNCDHWToNDHWC(outputExpected, outputTensorInfo);
419 return SimplePooling3dTestImpl<ArmnnType>(
420 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
421 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
424 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
444 if(armnn::IsQuantizedType<T>())
452 std::vector<T> inputData(
454 1.0f, 2.0f, 5.0f, 6.0f,
455 3.0f, 4.0f, 7.0f, 8.0f,
456 9.0f, 10.0f, 13.0f, 14.0f,
457 11.0f, 12.0f, 15.0f, 16.0f,
459 17.0f, 18.0f, 21.0f, 22.0f,
460 19.0f, 20.0f, 23.0f, 24.0f,
461 25.0f, 26.0f, 29.0f, 30.0f,
462 27.0f, 28.0f, 31.0f, 32.0f,
464 33.0f, 34.0f, 37.0f, 38.0f,
465 35.0f, 36.0f, 39.0f, 40.0f,
466 41.0f, 42.0f, 45.0f, 46.0f,
467 43.0f, 44.0f, 47.0f, 48.0f,
469 49.0f, 50.0f, 53.0f, 54.0f,
470 51.0f, 52.0f, 55.0f, 56.0f,
471 57.0f, 58.0f, 61.0f, 62.0f,
472 59.0f, 60.0f, 63.0f, 64.0f,
476 std::vector<T> outputData(
488 PermuteNCDHWToNDHWC(inputData, inputTensorInfo);
489 PermuteNCDHWToNDHWC(outputData, outputTensorInfo);
492 return SimplePooling3dTestImpl<ArmnnType>(
493 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
494 inputData, outputData, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
497 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
523 if(armnn::IsQuantizedType<T>())
531 std::vector<T> input;
538 std::vector<T> outputExpected;
542 outputExpected.push_back(1);
545 return SimplePooling3dTestImpl<ArmnnType>(
546 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
547 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
550 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
577 if(armnn::IsQuantizedType<T>())
585 auto input = QuantizedVector<T>(
587 12.0f, 20.0f, 32.0f, 40.0f,
588 12.0f, 20.0f, 32.0f, 40.0f,
589 12.0f, 20.0f, 32.0f, 40.0f,
590 12.0f, 20.0f, 32.0f, 40.0f,
592 24.0f, 40.0f, 64.0f, 80.0f,
593 24.0f, 40.0f, 64.0f, 80.0f,
594 24.0f, 40.0f, 64.0f, 80.0f,
595 24.0f, 40.0f, 64.0f, 80.0f,
597 36.0f, 60.0f, 96.0f, 120.0f,
598 36.0f, 60.0f, 96.0f, 120.0f,
599 36.0f, 60.0f, 96.0f, 120.0f,
600 36.0f, 60.0f, 96.0f, 120.0f,
602 48.0f, 80.0f, 128.0f, 160.0f,
603 48.0f, 80.0f, 128.0f, 160.0f,
604 48.0f, 80.0f, 128.0f, 160.0f,
605 48.0f, 80.0f, 128.0f, 160.0f,
609 auto outputExpected = QuantizedVector<T>(
627 PermuteNCDHWToNDHWC(input, inputTensorInfo);
628 PermuteNCDHWToNDHWC(outputExpected, outputTensorInfo);
631 return SimplePooling3dTestImpl<ArmnnType>(
632 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
633 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
636 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
656 if(armnn::IsQuantizedType<T>())
664 std::vector<T> inputData(
666 1.0f, 2.0f, 5.0f, 6.0f,
667 3.0f, 4.0f, 7.0f, 8.0f,
668 9.0f, 10.0f, 13.0f, 14.0f,
669 11.0f, 12.0f, 15.0f, 16.0f,
671 17.0f, 18.0f, 21.0f, 22.0f,
672 19.0f, 20.0f, 23.0f, 24.0f,
673 25.0f, 26.0f, 29.0f, 30.0f,
674 27.0f, 28.0f, 31.0f, 32.0f,
676 33.0f, 34.0f, 37.0f, 38.0f,
677 35.0f, 36.0f, 39.0f, 40.0f,
678 41.0f, 42.0f, 45.0f, 46.0f,
679 43.0f, 44.0f, 47.0f, 48.0f,
681 49.0f, 50.0f, 53.0f, 54.0f,
682 51.0f, 52.0f, 55.0f, 56.0f,
683 57.0f, 58.0f, 61.0f, 62.0f,
684 59.0f, 60.0f, 63.0f, 64.0f,
688 std::vector<T> outputData(
690 13.2476412995f, 16.5981926727f,
691 20.1866292382f, 23.9060661758f,
693 43.2608367926f, 47.1963981677f,
694 51.1419592898f, 55.0953718564f,
700 PermuteNCDHWToNDHWC(inputData, inputTensorInfo);
701 PermuteNCDHWToNDHWC(outputData, outputTensorInfo);
704 return SimplePooling3dTestImpl<ArmnnType>(
705 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
706 inputData, outputData, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
709 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
735 if(armnn::IsQuantizedType<T>())
743 auto input = QuantizedVector<T>(
745 1.0f, 2.0f, 3.0f, 4.0f,
746 1.0f, 2.0f, 3.0f, 4.0f,
747 1.0f, 2.0f, 3.0f, 4.0f,
748 1.0f, 2.0f, 3.0f, 4.0f,
750 2.0f, 3.0f, 4.0f, 5.0f,
751 2.0f, 3.0f, 4.0f, 5.0f,
752 2.0f, 3.0f, 4.0f, 5.0f,
753 2.0f, 3.0f, 4.0f, 5.0f,
755 3.0f, 4.0f, 5.0f, 6.0f,
756 3.0f, 4.0f, 5.0f, 6.0f,
757 3.0f, 4.0f, 5.0f, 6.0f,
758 3.0f, 4.0f, 5.0f, 6.0f,
760 4.0f, 5.0f, 6.0f, 7.0f,
761 4.0f, 5.0f, 6.0f, 7.0f,
762 4.0f, 5.0f, 6.0f, 7.0f,
763 4.0f, 5.0f, 6.0f, 7.0f,
767 float v111 = float(
sqrt(pow(1,2)/8.0f));
768 float v112 = float(
sqrt((pow(2,2)+pow(3,2))/8.0f));
769 float v113 = float(
sqrt(pow(4,2)/8));
771 float v121 = float(
sqrt((2*pow(1,2))/8.0f));
772 float v122 = float(
sqrt((2*pow(2,2)+2*pow(3,2))/8.0f));
773 float v123 = float(
sqrt((2*pow(4,2))/8.0f));
779 float v211 = float(
sqrt((pow(2,2)+pow(3,2))/8.0f));
780 float v212 = float(
sqrt((pow(3,2)+2*pow(4,2)+pow(5,2))/8.0f));
781 float v213 = float(
sqrt((pow(5,2)+pow(6,2))/8.0f));
783 float v221 = float(
sqrt((2*pow(2,2)+2*pow(3,2))/8.0f));
784 float v222 = float(
sqrt((2*pow(3,2)+4*pow(4,2)+2*pow(5,2))/8.0f));
785 float v223 = float(
sqrt((2*pow(5,2)+2*pow(6,2))/8.0f));
791 float v311 = float(
sqrt(pow(4,2)/8.0f));
792 float v312 = float(
sqrt((pow(5,2)+pow(6,2))/8.0f));
793 float v313 = float(
sqrt(pow(7,2)/8));
795 float v321 = float(
sqrt((2*pow(4,2))/8.0f));
796 float v322 = float(
sqrt((2*pow(5,2)+2*pow(6,2))/8.0f));
797 float v323 = float(
sqrt((2*pow(7,2))/8.0f));
803 auto outputExpected = QuantizedVector<T>(
821 PermuteNCDHWToNDHWC(input, inputTensorInfo);
822 PermuteNCDHWToNDHWC(outputExpected, outputTensorInfo);
825 return SimplePooling3dTestImpl<ArmnnType>(
826 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
827 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
830 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
861 auto input = QuantizedVector<T>( { 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
864 auto outputExpected = QuantizedVector<T>( { 0.0f, 3.0f, 0.0f, 3.0f, }, qScale, qOffset);
868 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
869 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
872 return SimplePooling3dTestImpl<ArmnnType>(
873 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
874 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
877 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
908 auto input = QuantizedVector<T>( { 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
911 auto outputExpected = QuantizedVector<T>( { 1.0f, 4.0f, 1.0f, 4.0f, }, qScale, qOffset);
915 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
916 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
919 return SimplePooling3dTestImpl<ArmnnType>(
920 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
921 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
924 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
955 auto input = QuantizedVector<T>({ 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
958 auto outputExpected = QuantizedVector<T>( { 0.0f, 2.0f, 0.0f, 2.0f, }, qScale, qOffset);
962 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
963 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
965 return SimplePooling3dTestImpl<ArmnnType>(
966 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
967 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
970 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
1001 auto input = QuantizedVector<T>( { 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
1004 auto outputExpected = QuantizedVector<T>( { 1.0f, 3.5f, 1.0f, 3.5f, }, qScale, qOffset);
1008 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
1009 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
1011 return SimplePooling3dTestImpl<ArmnnType>(
1012 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
1013 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
1016 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
1022 float qScale = 1.0f,
1023 int32_t qOffset = 0)
1047 auto input = QuantizedVector<T>( { 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
1050 auto outputExpected = QuantizedVector<T>( { 0.0f, 2.2360679775f, 0.0f, 2.2360679775f, }, qScale, qOffset);
1054 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
1055 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
1058 return SimplePooling3dTestImpl<ArmnnType>(
1059 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
1060 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
1063 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
1069 float qScale = 1.0f,
1070 int32_t qOffset = 0)
1094 auto input = QuantizedVector<T>( { 1.0f, 3.0f, 4.0f, }, qScale, qOffset);
1097 auto outputExpected = QuantizedVector<T>( { 1.0f, 3.53553390593f, 1.0f, 3.53553390593f, }, qScale, qOffset);
1101 PermuteNCDHWToNDHWC<T>(input, inputTensorInfo);
1102 PermuteNCDHWToNDHWC<T>(outputExpected, outputTensorInfo);
1105 return SimplePooling3dTestImpl<ArmnnType>(
1106 workloadFactory, memoryManager, tensorHandleFactory, descriptor, qScale, qOffset,
1107 input, outputExpected, inputTensorInfo.
GetShape(), outputTensorInfo.
GetShape());
1110 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
1119 float qScale = 1.0f,
1120 int32_t qOffset = 0)
1123 const unsigned int inputWidth = 16;
1124 const unsigned int inputHeight = 32;
1125 const unsigned int inputDepth = 48;
1126 const unsigned int channelCount = 2;
1127 const unsigned int batchSize = 5;
1129 const unsigned int poolSize = 3;
1130 const unsigned int strideX = 2;
1131 const unsigned int strideY = 4;
1132 const unsigned int strideZ = 6;
1133 const unsigned int padX = 0;
1134 const unsigned int padY = 0;
1135 const unsigned int padZ = 0;
1137 const unsigned int outputWidth = (inputWidth + 2 * padX + strideX - poolSize) / strideX;
1138 const unsigned int outputHeight = (inputHeight + 2 * padY + strideY - poolSize) / strideY;
1139 const unsigned int outputDepth = (inputDepth + 2 * padZ + strideZ - poolSize) / strideZ;
1142 inputWidth, dataLayout, ArmnnType);
1144 outputWidth, dataLayout, ArmnnType);
1147 if(armnn::IsQuantizedType<T>())
1155 std::vector<T> input = MakeRandomTensor<T>(inputTensorInfo, 81715);
1157 std::vector<T> expectedOutput(outputTensorInfo.
GetNumElements());
1160 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
1161 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
1165 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1166 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1183 std::unique_ptr<armnn::ITensorHandle> outputHandleRef =
1185 std::unique_ptr<armnn::ITensorHandle> inputHandleRef = refTensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
1189 std::string reasonIfUnsupported;
1194 reasonIfUnsupported);
1195 if (!comparisonResult.m_Supported)
1197 return comparisonResult;
1202 SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get());
1203 SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get());
1205 std::unique_ptr<armnn::IWorkload> workload
1207 std::unique_ptr<armnn::IWorkload> workloadRef
1210 outputHandleRef->Allocate();
1211 inputHandleRef->Allocate();
1212 inputHandle->Allocate();
1213 outputHandle->Allocate();
1218 workload->Execute();
1219 workloadRef->Execute();
1224 comparisonResult.m_ActualData = actualOutput;
1225 comparisonResult.m_ExpectedData = expectedOutput;
1227 return comparisonResult;
1238 return SimpleMaxPooling3dSize2x2x2Stride1x1x1TestCommon<armnn::DataType::Float32>(
1239 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1248 return SimpleMaxPooling3dSize2x2x2Stride1x1x1TestCommon<armnn::DataType::QAsymmU8>(
1249 workloadFactory, memoryManager, tensorHandleFactory, dataLayout, 0.1f, 128);
1258 return SimpleMaxPooling3dSize2x2x2Stride1x1x1TestCommon<armnn::DataType::QSymmS16>(
1259 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1268 return SimpleMaxPooling3dTestCommon<armnn::DataType::Float32>(
1269 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1278 return SimpleMaxPooling3dTestCommon<armnn::DataType::QAsymmU8>(
1279 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1288 return SimpleMaxPooling3dTestCommon<armnn::DataType::QSymmS16>(
1289 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1298 return IgnorePaddingSimpleMaxPooling3dTestCommon<armnn::DataType::Float32>(
1299 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1308 return IgnorePaddingSimpleMaxPooling3dTestCommon<armnn::DataType::QAsymmU8>(
1309 workloadFactory, memoryManager, tensorHandleFactory,dataLayout, 1.0f, -5);
1318 return IgnorePaddingSimpleMaxPooling3dTestCommon<armnn::DataType::QSymmS16>(
1319 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1328 return SimpleAveragePooling3dTestCommon<armnn::DataType::Float32>(
1329 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1338 return SimpleAveragePooling3dTestCommon<armnn::DataType::QAsymmU8>(
1339 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1348 return SimpleAveragePooling3dTestCommon<armnn::DataType::QSymmS16>(
1349 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1358 return SimpleL2Pooling3dTestCommon<armnn::DataType::Float32>(
1359 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1368 return SimpleL2Pooling3dTestCommon<armnn::DataType::QAsymmU8>(
1369 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1378 return SimpleL2Pooling3dTestCommon<armnn::DataType::QSymmS16>(
1379 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1388 return LargeTensorsAveragePooling3dTestCommon<armnn::DataType::Float32>(
1389 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1398 return LargeTensorsAveragePooling3dTestCommon<armnn::DataType::QAsymmU8>(
1399 workloadFactory, memoryManager, tensorHandleFactory, dataLayout, 0.5, -1);
1408 return LargeTensorsAveragePooling3dTestCommon<armnn::DataType::QSymmS16>(
1409 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1418 return IgnorePaddingSimpleAveragePooling3dTestCommon<armnn::DataType::Float32>(
1419 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1428 return IgnorePaddingSimpleAveragePooling3dTestCommon<armnn::DataType::QAsymmU8>(
1429 workloadFactory, memoryManager, tensorHandleFactory, dataLayout, 1.0f, -5);
1438 return IgnorePaddingSimpleAveragePooling3dTestCommon<armnn::DataType::QSymmS16>(
1439 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1448 return IgnorePaddingSimpleL2Pooling3dTestCommon<armnn::DataType::Float32>(
1449 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1458 return IgnorePaddingSimpleL2Pooling3dTestCommon<armnn::DataType::QAsymmU8>(
1459 workloadFactory, memoryManager, tensorHandleFactory, dataLayout, 1.0f, -5);
1468 return IgnorePaddingSimpleL2Pooling3dTestCommon<armnn::DataType::QSymmS16>(
1469 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1478 return AsymmetricNonSquareMaxPooling3dTestCommon<armnn::DataType::Float32>(
1479 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1488 return AsymmetricNonSquareMaxPooling3dTestCommon<armnn::DataType::QAsymmU8>(
1489 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1498 return AsymmetricNonSquareMaxPooling3dTestCommon<armnn::DataType::QSymmS16>(
1499 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1508 return AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::Float32>(
1509 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1518 return AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QAsymmU8>(
1519 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1528 return AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QSymmS16>(
1529 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1538 return AsymmetricNonSquareAveragePooling3dTestCommon<armnn::DataType::Float32>(
1539 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1548 return AsymmetricNonSquareAveragePooling3dTestCommon<armnn::DataType::QAsymmU8>(
1549 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1558 return AsymmetricNonSquareAveragePooling3dTestCommon<armnn::DataType::QSymmS16>(
1559 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1568 return AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::Float32>(
1569 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1578 return AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QAsymmU8>(
1579 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1588 return AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QSymmS16>(
1589 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1598 return AsymmetricNonSquareL2Pooling3dTestCommon<armnn::DataType::Float32>(
1599 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1608 return AsymmetricNonSquareL2Pooling3dTestCommon<armnn::DataType::QAsymmU8>(
1609 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1618 return AsymmetricNonSquareL2Pooling3dTestCommon<armnn::DataType::QSymmS16>(
1619 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1628 return AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::Float32>(
1629 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1638 return AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QAsymmU8>(
1639 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1648 return AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTestCommon<armnn::DataType::QSymmS16>(
1649 workloadFactory, memoryManager, tensorHandleFactory, dataLayout);
1661 return ComparePooling3dTestCommon<armnn::DataType::Float32>(
1662 workloadFactory, memoryManager, refWorkloadFactory, tensorHandleFactory, refTensorHandleFactory,
1663 poolingType, dataLayout);
1675 return ComparePooling3dTestCommon<armnn::DataType::QAsymmU8>(
1676 workloadFactory, memoryManager, refWorkloadFactory, tensorHandleFactory, refTensorHandleFactory,
1677 poolingType, dataLayout, 0.1f, 128);
1689 return ComparePooling3dTestCommon<armnn::DataType::QSymmS16>(
1690 workloadFactory, memoryManager, refWorkloadFactory, tensorHandleFactory, refTensorHandleFactory,
1691 poolingType, dataLayout);
unsigned int GetNumElements() const
Function that calculates the tensor elements by multiplying all dimension size which are Specified...
PoolingAlgorithm m_PoolType
The pooling algorithm to use (Max. Average, L2).
virtual const BackendId & GetBackendId() const =0
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareAveragePooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > LargeTensorsAveragePooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > SimpleMaxPooling3dSize2x2x2Stride1x1x1Uint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > ComparePooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::ITensorHandleFactory &refTensorHandleFactory, armnn::PoolingAlgorithm poolingType, const armnn::DataLayout dataLayout)
unsigned int GetWidthIndex() const
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
const TensorShape & GetShape() const
uint32_t m_PoolWidth
Pooling width value.
uint32_t m_PoolDepth
Pooling depth value.
LayerTestResult< float, 5 > AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > SimpleAveragePooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > IgnorePaddingSimpleL2Pooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > IgnorePaddingSimpleL2Pooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
The padding fields don't count and are ignored.
LayerTestResult< float, 5 > ComparePooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::ITensorHandleFactory &refTensorHandleFactory, armnn::PoolingAlgorithm poolingType, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareAveragePooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
bool IsPooling3dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
LayerTestResult< uint8_t, 5 > IgnorePaddingSimpleMaxPooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareL2Pooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
uint32_t m_PadRight
Padding right value in the width dimension.
unsigned int GetDepthIndex() const
LayerTestResult< int16_t, 5 > IgnorePaddingSimpleAveragePooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareL2Pooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > ComparePooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::IWorkloadFactory &refWorkloadFactory, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::ITensorHandleFactory &refTensorHandleFactory, armnn::PoolingAlgorithm poolingType, const armnn::DataLayout dataLayout)
DataLayout m_DataLayout
The data layout to be used (NCDHW, NDHWC).
void IgnoreUnused(Ts &&...)
uint32_t m_PadFront
Padding front value in the depth dimension.
uint32_t m_PoolHeight
Pooling height value.
LayerDescriptor m_Parameters
unsigned int GetHeightIndex() const
LayerTestResult< int16_t, 5 > IgnorePaddingSimpleL2Pooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
void Permute(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareMaxPooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
uint32_t m_PadBack
Padding back value in the depth dimension.
LayerTestResult< float, 5 > AsymmetricNonSquareMaxPooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > SimpleL2Pooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > IgnorePaddingSimpleMaxPooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > AsymmetricNonSquareL2Pooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
Provides access to the appropriate indexes for Channels, Height and Width based on DataLayout...
OutputShapeRounding m_OutputShapeRounding
The rounding method for the output shape. (Floor, Ceiling).
uint32_t m_PadBottom
Padding bottom value in the height dimension.
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< uint8_t, 5 > LargeTensorsAveragePooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > IgnorePaddingSimpleMaxPooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
void SetQuantizationScale(float scale)
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > IgnorePaddingSimpleAveragePooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareMaxPooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > SimpleAveragePooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > IgnorePaddingSimpleAveragePooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< uint8_t, 5 > SimpleMaxPooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
A Pooling3dDescriptor for the Pooling3dLayer.
uint32_t m_StrideZ
Stride value when proceeding through input for the depth dimension.
LayerTestResult< int16_t, 5 > SimpleMaxPooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
uint32_t m_PadLeft
Padding left value in the width dimension.
The padding fields count, but are ignored.
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
uint32_t m_PadTop
Padding top value in the height dimension.
LayerTestResult< int16_t, 5 > SimpleL2Pooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > SimpleMaxPooling3dSize2x2x2Stride1x1x1Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const armnn::DataLayout dataLayout, const armnn::DataType dataType)
LayerTestResult< uint8_t, 5 > SimpleL2Pooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
Contains information about TensorInfos of a layer.
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
void SetQuantizationOffset(int32_t offset)
LayerTestResult< float, 5 > SimpleMaxPooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerSupportHandle GetILayerSupportByBackendId(const armnn::BackendId &backend)
Convenience function to retrieve the ILayerSupportHandle for a backend.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
LayerTestResult< uint8_t, 5 > SimpleAveragePooling3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
PaddingMethod m_PaddingMethod
The padding method to be used. (Exclude, IgnoreValue).
LayerTestResult< uint8_t, 5 > AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const
unsigned int GetChannelsIndex() const
LayerTestResult< int16_t, 5 > SimpleMaxPooling3dSize2x2x2Stride1x1x1Int16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
LayerTestResult< float, 5 > AsymmetricNonSquareAveragePooling3dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< int16_t, 5 > LargeTensorsAveragePooling3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)
LayerTestResult< float, 5 > AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::DataLayout dataLayout)