20 template<
typename T, std::
size_t NumDims>
26 std::vector<float>& inputData,
27 std::vector<float>& expectedOutputData,
29 const float qScale = 1.0f,
30 const int qOffset = 0)
33 if(armnn::IsQuantizedType<T>())
42 std::vector<T> input = armnnUtils::QuantizedVector<T>(inputData, qScale, qOffset);
43 std::vector<T> expectedOutput = armnnUtils::QuantizedVector<T>(expectedOutputData, qScale, qOffset);
47 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.
CreateTensorHandle(inputInfo);
48 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.
CreateTensorHandle(outputInfo);
52 AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get());
53 AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get());
59 inputHandle->Allocate();
60 outputHandle->Allocate();
64 ExecuteWorkload(*workload, memoryManager);
70 outputHandle->GetShape(),
74 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
88 std::vector<float> input =
90 0.f, 1.f, 2.f, 3.f, 4.f,
91 5.f, 6.f, 7.f, 8.f, 9.f,
92 10.f, 11.f, 12.f, 13.f, 14.f,
94 15.f, 16.f, 17.f, 18.f, 19.f,
95 20.f, 21.f, 22.f, 23.f, 24.f,
96 25.f, 26.f, 27.f, 28.f, 29.f,
99 30.f, 31.f, 32.f, 33.f, 34.f,
100 35.f, 36.f, 37.f, 38.f, 39.f,
101 40.f, 41.f, 42.f, 43.f, 44.f,
103 45.f, 46.f, 47.f, 48.f, 49.f,
104 50.f, 51.f, 52.f, 53.f, 54.f,
105 55.f, 56.f, 57.f, 58.f, 59.f,
108 60.f, 61.f, 62.f, 63.f, 64.f,
109 65.f, 66.f, 67.f, 68.f, 69.f,
110 70.f, 71.f, 72.f, 73.f, 74.f,
112 75.f, 76.f, 77.f, 78.f, 79.f,
113 80.f, 81.f, 82.f, 83.f, 84.f,
114 85.f, 86.f, 87.f, 88.f, 89.f
117 std::vector<float> expectedOutput =
127 return SliceTestImpl<T, 4>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
130 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
144 std::vector<float> input =
146 0.f, 1.f, 2.f, 3.f, 4.f,
147 5.f, 6.f, 7.f, 8.f, 9.f,
148 10.f, 11.f, 12.f, 13.f, 14.f,
150 15.f, 16.f, 17.f, 18.f, 19.f,
151 20.f, 21.f, 22.f, 23.f, 24.f,
152 25.f, 26.f, 27.f, 28.f, 29.f,
155 std::vector<float> expectedOutput =
161 return SliceTestImpl<T, 3>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
164 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
178 std::vector<float> input =
180 0.f, 1.f, 2.f, 3.f, 4.f,
181 5.f, 6.f, 7.f, 8.f, 9.f,
182 10.f, 11.f, 12.f, 13.f, 14.f
185 std::vector<float> expectedOutput =
191 return SliceTestImpl<T, 2>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
194 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
208 std::vector<float> input =
210 0.f, 1.f, 2.f, 3.f, 4.f
213 std::vector<float> expectedOutput =
218 return SliceTestImpl<T, 1>(workloadFactory, memoryManager, inputInfo, outputInfo, input, expectedOutput, desc);
227 return Slice4dTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
233 return Slice3dTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
239 return Slice2dTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
245 return Slice1dTest<armnn::DataType::Float32>(workloadFactory, memoryManager);
252 return Slice4dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
258 return Slice3dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
264 return Slice2dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
270 return Slice1dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager);
277 return Slice4dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
283 return Slice3dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
289 return Slice2dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
295 return Slice1dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager);
LayerTestResult< uint8_t, 1 > Slice1dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 2 > Slice2dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< float, 4 > Slice4dFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 1 > Slice1dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
const TensorShape & GetShape() const
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
LayerTestResult< float, 2 > Slice2dFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
std::vector< unsigned int > m_Size
Size of the slice in each dimension.
LayerTestResult< int16_t, 4 > Slice4dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< uint8_t, 3 > Slice3dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void IgnoreUnused(Ts &&...)
LayerDescriptor m_Parameters
LayerTestResult< uint8_t, 4 > Slice4dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
#define ARMNN_NO_DEPRECATE_WARN_END
std::vector< unsigned int > m_Begin
Beginning indices of the slice in each dimension.
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
void SetQuantizationScale(float scale)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
LayerTestResult< float, 3 > Slice3dFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int16_t, 3 > Slice3dInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
Contains information about TensorInfos of a layer.
void SetQuantizationOffset(int32_t offset)
LayerTestResult< uint8_t, 2 > Slice2dUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const
unsigned int GetNumElements() const
LayerTestResult< float, 1 > Slice1dFloat32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)