18 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
25 const std::vector<float>& inputData,
26 const std::vector<int32_t>& outputData,
30 auto inputTensor = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(inputData, inputTensorInfo));
33 result.outputExpected = MakeTensor<int32_t, 3>(outputTensorInfo, outputData);
36 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
37 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
42 descriptor.m_Parameters.m_Axis = axis;
45 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
46 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
48 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateArgMinMax(descriptor, info);
50 inputHandle->Allocate();
51 outputHandle->Allocate();
55 workload->PostAllocationConfigure();
65 template<armnn::DataType ArmnnType,
typename T>
75 if (armnn::IsQuantizedType<T>())
83 std::vector<float> inputValues({ 5.0f, 2.0f, 8.0f, 10.0f, 9.0f });
84 std::vector<int32_t> outputValues({ 3 });
86 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
88 inputTensorInfo, outputTensorInfo,
89 inputValues, outputValues, -1);
92 template<armnn::DataType ArmnnType,
typename T>
102 if (armnn::IsQuantizedType<T>())
110 std::vector<float> inputValues({ 5.0f, 2.0f, 8.0f, 10.0f, 9.0f });
111 std::vector<int32_t> outputValues({ 1 });
113 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
115 inputTensorInfo, outputTensorInfo,
116 inputValues, outputValues, 3);
119 template<armnn::DataType ArmnnType,
typename T>
129 if (armnn::IsQuantizedType<T>())
137 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
138 5.0f, 6.0f, 7.0f, 8.0f,
140 10.0f, 20.0f, 30.0f, 40.0f,
141 50.0f, 60.0f, 70.0f, 80.0f,
143 100.0f, 200.0f, 300.0f, 400.0f,
144 500.0f, 600.0f, 700.0f, 800.0f });
145 std::vector<int32_t> outputValues({ 0, 0, 0, 0,
148 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
150 inputTensorInfo, outputTensorInfo,
151 inputValues, outputValues, 1);
154 template<armnn::DataType ArmnnType,
typename T>
164 if (armnn::IsQuantizedType<T>())
172 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
173 5.0f, 6.0f, 7.0f, 8.0f,
175 10.0f, 20.0f, 30.0f, 40.0f,
176 50.0f, 60.0f, 70.0f, 80.0f,
178 100.0f, 200.0f, 300.0f, 400.0f,
179 500.0f, 600.0f, 700.0f, 800.0f });
180 std::vector<int32_t> outputValues({ 2, 2, 2, 2,
183 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
185 inputTensorInfo, outputTensorInfo,
186 inputValues, outputValues, 1);
189 template<armnn::DataType ArmnnType,
typename T>
200 if (armnn::IsQuantizedType<T>())
206 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
207 5.0f, 6.0f, 7.0f, 8.0f,
209 10.0f, 20.0f, 30.0f, 40.0f,
210 50.0f, 60.0f, 70.0f, 80.0f,
212 100.0f, 200.0f, 300.0f, 400.0f,
213 500.0f, 600.0f, 700.0f, 800.0f });
214 std::vector<int32_t> outputValues({ 1, 1, 1, 1,
218 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
220 inputTensorInfo, outputTensorInfo,
221 inputValues, outputValues, 2);
224 template<armnn::DataType ArmnnType,
typename T>
235 if (armnn::IsQuantizedType<T>())
241 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
242 5.0f, 6.0f, 7.0f, 8.0f,
244 10.0f, 20.0f, 30.0f, 40.0f,
245 50.0f, 60.0f, 70.0f, 80.0f,
247 100.0f, 200.0f, 300.0f, 400.0f,
248 500.0f, 600.0f, 700.0f, 800.0f });
249 std::vector<int32_t> outputValues({ 0, 0,
253 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager,
255 inputTensorInfo, outputTensorInfo,
256 inputValues, outputValues, 3);
263 ArgMaxSimpleTest<armnn::DataType::Float32>(
268 ArgMaxSimpleTest<armnn::DataType::Float16>(
273 ArgMaxSimpleTest<armnn::DataType::QAsymmS8>(
278 ArgMaxSimpleTest<armnn::DataType::QAsymmU8>(
283 ArgMaxSimpleTest<armnn::DataType::QSymmS16>(
288 ArgMaxSimpleTest<armnn::DataType::Signed32>(
293 ArgMinSimpleTest<armnn::DataType::Float32>(
298 ArgMinSimpleTest<armnn::DataType::Float16>(
303 ArgMinSimpleTest<armnn::DataType::QAsymmS8>(
308 ArgMinSimpleTest<armnn::DataType::QAsymmU8>(
313 ArgMinSimpleTest<armnn::DataType::QSymmS16>(
318 ArgMinSimpleTest<armnn::DataType::Signed32>(
323 ArgMinChannelTest<armnn::DataType::Float32>(
328 ArgMinChannelTest<armnn::DataType::Float16>(
333 ArgMinChannelTest<armnn::DataType::QAsymmS8>(
338 ArgMinChannelTest<armnn::DataType::QAsymmU8>(
343 ArgMinChannelTest<armnn::DataType::QSymmS16>(
348 ArgMinChannelTest<armnn::DataType::Signed32>(
353 ArgMaxChannelTest<armnn::DataType::Float32>(
358 ArgMaxChannelTest<armnn::DataType::Float16>(
363 ArgMaxChannelTest<armnn::DataType::QAsymmS8>(
368 ArgMaxChannelTest<armnn::DataType::QAsymmU8>(
373 ArgMaxChannelTest<armnn::DataType::QSymmS16>(
378 ArgMaxChannelTest<armnn::DataType::Signed32>(
383 ArgMaxHeightTest<armnn::DataType::Float32>(
388 ArgMaxHeightTest<armnn::DataType::Float16>(
393 ArgMaxHeightTest<armnn::DataType::Signed32>(
398 ArgMaxHeightTest<armnn::DataType::QAsymmS8>(
403 ArgMaxHeightTest<armnn::DataType::QAsymmU8>(
408 ArgMinWidthTest<armnn::DataType::Float32>(
413 ArgMinWidthTest<armnn::DataType::Float16>(
418 ArgMinWidthTest<armnn::DataType::Signed32>(
423 ArgMinWidthTest<armnn::DataType::QAsymmS8>(
428 ArgMinWidthTest<armnn::DataType::QAsymmU8>(
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
LayerTestResult< int32_t, 3 > ArgMinSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
ArgMinMaxFunction m_Function
Specify if the function is to find Min or Max.
LayerTestResult< int32_t, 3 > ArgMinChannelTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int32_t, 3 > ArgMaxChannelTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void IgnoreUnused(Ts &&...)
LayerDescriptor m_Parameters
LayerTestResult< int32_t, 3 > ArgMaxHeightTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
#define ARMNN_NO_DEPRECATE_WARN_END
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void SetQuantizationScale(float scale)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< int32_t, 3 > ArgMinWidthTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int32_t, 3 > ArgMaxSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Contains information about inputs and outputs to a layer.
void SetQuantizationOffset(int32_t offset)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)