17 template<
typename T,
size_t NumDims>
24 const std::vector<T>& inputData,
25 const std::vector<T>& outputExpectedData)
28 auto input = MakeTensor<T, NumDims>(inputTensorInfo, inputData);
31 ret.outputExpected = MakeTensor<T, NumDims>(outputTensorInfo, outputExpectedData);
33 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
34 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
38 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
39 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
41 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateReshape(data, info);
43 inputHandle->Allocate();
44 outputHandle->Allocate();
57 template<armnn::DataType ArmnnType,
typename T>
66 unsigned int inputShape[] = { 2, 2, 3, 3 };
67 unsigned int outputShape[] = { 2, 2, 9, 1 };
74 auto input = ConvertToDataType<ArmnnType>(
94 auto outputExpected = ConvertToDataType<ArmnnType>(
96 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f,
98 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f,
100 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 26.0f,
102 27.0f, 28.0f, 29.0f, 30.0f, 31.0f, 32.0f, 33.0f, 34.0f, 35.0f,
106 return SimpleReshapeTestImpl<T, 4>(
107 workloadFactory, memoryManager, tensorHandleFactory, inputTensorInfo, outputTensorInfo, input, outputExpected);
110 template<armnn::DataType ArmnnType,
typename T>
119 unsigned int inputShape[] = { 2, 2, 8, 1, 1 };
120 unsigned int outputShape[] = { 2, 2, 2, 2, 2 };
127 auto input = ConvertToDataType<ArmnnType>(
129 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f,
130 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f,
132 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f,
133 24.0f, 25.0f, 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 31.0f,
137 auto outputExpected = ConvertToDataType<ArmnnType>(
169 return SimpleReshapeTestImpl<T, 5>(
170 workloadFactory, memoryManager, tensorHandleFactory, inputTensorInfo, outputTensorInfo, input, outputExpected);
181 unsigned int inputShape[] = { 1, 4 };
182 unsigned int outputShape[] = { 2, 2 };
189 const std::vector<uint8_t> input = {
true,
false,
false,
true };
191 const std::vector<uint8_t> outputExpected = {
true,
false,
false,
true };
193 return SimpleReshapeTestImpl<uint8_t, 2>(
194 workloadFactory, memoryManager, tensorHandleFactory, inputTensorInfo, outputTensorInfo, input, outputExpected);
202 SimpleReshapeTest<armnn::DataType::Float32>(
208 SimpleReshapeTest<armnn::DataType::QAsymmS8>(
214 SimpleReshapeTest<armnn::DataType::QAsymmU8>(
220 SimpleReshapeTest<armnn::DataType::QSymmS16>(
225 template LayerTestResult<armnn::ResolveType<armnn::DataType::Float32>, 5>
226 Reshape5dTest<armnn::DataType::Float32>(
231 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmS8>, 5>
232 Reshape5dTest<armnn::DataType::QAsymmS8>(
237 template LayerTestResult<armnn::ResolveType<armnn::DataType::QAsymmU8>, 5>
238 Reshape5dTest<armnn::DataType::QAsymmU8>(
243 template LayerTestResult<armnn::ResolveType<armnn::DataType::QSymmS16>, 5>
244 Reshape5dTest<armnn::DataType::QSymmS16>(
LayerTestResult< uint8_t, 2 > ReshapeBooleanTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void IgnoreUnused(Ts &&...)
LayerTestResult< T, 4 > SimpleReshapeTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void SetQuantizationScale(float scale)
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
virtual std::unique_ptr< IWorkload > CreateReshape(const ReshapeQueueDescriptor &descriptor, const WorkloadInfo &info) const
LayerTestResult< T, 5 > Reshape5dTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about inputs and outputs to a layer.
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)