14 template<
typename T, std::
size_t n>
19 std::vector<int32_t> expectedOutputData,
26 std::vector<int32_t> actualOutput(outputTensorInfo.
GetNumElements());
28 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
29 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
33 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
34 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
36 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateShape(data, info);
38 inputHandle->Allocate();
39 outputHandle->Allocate();
49 outputHandle->GetShape(),
53 template<armnn::DataType ArmnnType,
typename T>
62 auto input = ConvertToDataType<ArmnnType>({ 1.0f }, inputTensorInfo);
64 return ShapeTest<T, 1>(inputTensorInfo, input, outputTensorInfo, { 1 }, workloadFactory, memoryManager,
68 template<armnn::DataType ArmnnType,
typename T>
77 auto input = ConvertToDataType<ArmnnType>({ 1.0f, 1.0f }, inputTensorInfo);
79 return ShapeTest<T, 2>(inputTensorInfo, input, outputTensorInfo, { 1, 2 }, workloadFactory, memoryManager,
83 template<armnn::DataType ArmnnType,
typename T>
92 auto input = ConvertToDataType<ArmnnType>({ 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }, inputTensorInfo);
94 return ShapeTest<T, 3>(inputTensorInfo, input, outputTensorInfo, { 1, 2, 3 }, workloadFactory, memoryManager,
98 template<armnn::DataType ArmnnType,
typename T>
107 auto input = ConvertToDataType<ArmnnType>({ 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
108 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
112 return ShapeTest<T, 4>(inputTensorInfo, input, outputTensorInfo, { 2, 2, 3, 2 }, workloadFactory, memoryManager,
113 tensorHandleFactory);
117 ShapeDimSize4Test<armnn::DataType::Float16>(
123 ShapeDimSize4Test<armnn::DataType::Float32>(
129 ShapeDimSize4Test<armnn::DataType::QAsymmU8>(
135 ShapeDimSize4Test<armnn::DataType::Signed32>(
141 ShapeDimSize4Test<armnn::DataType::QSymmS16>(
147 ShapeDimSize4Test<armnn::DataType::QSymmS8>(
153 ShapeDimSize4Test<armnn::DataType::QAsymmS8>(
159 ShapeDimSize4Test<armnn::DataType::BFloat16>(
165 ShapeDimSize3Test<armnn::DataType::Float16>(
171 ShapeDimSize3Test<armnn::DataType::Float32>(
177 ShapeDimSize3Test<armnn::DataType::QAsymmU8>(
183 ShapeDimSize3Test<armnn::DataType::Signed32>(
189 ShapeDimSize3Test<armnn::DataType::QSymmS16>(
195 ShapeDimSize3Test<armnn::DataType::QSymmS8>(
201 ShapeDimSize3Test<armnn::DataType::QAsymmS8>(
207 ShapeDimSize3Test<armnn::DataType::BFloat16>(
213 ShapeDimSize2Test<armnn::DataType::Float16>(
219 ShapeDimSize2Test<armnn::DataType::Float32>(
225 ShapeDimSize2Test<armnn::DataType::QAsymmU8>(
231 ShapeDimSize2Test<armnn::DataType::Signed32>(
237 ShapeDimSize2Test<armnn::DataType::QSymmS16>(
243 ShapeDimSize2Test<armnn::DataType::QSymmS8>(
249 ShapeDimSize2Test<armnn::DataType::QAsymmS8>(
255 ShapeDimSize2Test<armnn::DataType::BFloat16>(
261 ShapeDimSize1Test<armnn::DataType::Float16>(
267 ShapeDimSize1Test<armnn::DataType::Float32>(
273 ShapeDimSize1Test<armnn::DataType::QAsymmU8>(
279 ShapeDimSize1Test<armnn::DataType::Signed32>(
285 ShapeDimSize1Test<armnn::DataType::QSymmS16>(
291 ShapeDimSize1Test<armnn::DataType::QSymmS8>(
297 ShapeDimSize1Test<armnn::DataType::QAsymmS8>(
303 ShapeDimSize1Test<armnn::DataType::BFloat16>(
const TensorShape & GetShape() const
LayerTestResult< int32_t, 1 > ShapeDimSize4Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void IgnoreUnused(Ts &&...)
LayerTestResult< int32_t, 1 > ShapeDimSize1Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int32_t, 1 > ShapeTest(armnn::TensorInfo inputTensorInfo, std::vector< T > input, armnn::TensorInfo outputTensorInfo, std::vector< int32_t > expectedOutputData, armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
Contains information about TensorInfos of a layer.
LayerTestResult< int32_t, 1 > ShapeDimSize3Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
virtual std::unique_ptr< IWorkload > CreateShape(const ShapeQueueDescriptor &descriptor, const WorkloadInfo &info) const
LayerTestResult< int32_t, 1 > ShapeDimSize2Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
unsigned int GetNumElements() const
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)