25 const std::vector<T>& inputData,
26 const std::vector<T>& outputExpectedData)
28 boost::ignore_unused(memoryManager);
29 auto input = MakeTensor<T, 4>(inputTensorInfo, inputData);
32 ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo, outputExpectedData);
34 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.
CreateTensorHandle(inputTensorInfo);
35 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.
CreateTensorHandle(outputTensorInfo);
40 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
41 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
43 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreatePermute(data, info);
45 inputHandle->Allocate();
46 outputHandle->Allocate();
57 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
65 unsigned int inputShape[] = { 1, 2, 2, 2 };
66 unsigned int outputShape[] = { 1, 2, 2, 2 };
75 if(armnn::IsQuantizedType<T>())
83 std::vector<T> input = std::vector<T>(
91 std::vector<T> outputExpected = std::vector<T>(
97 return SimplePermuteTestImpl<T>(workloadFactory, memoryManager,
98 descriptor, inputTensorInfo,
99 outputTensorInfo, input, outputExpected);
102 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
110 unsigned int inputShape[] = { 1, 2, 2, 3 };
111 unsigned int outputShape[] = { 1, 3, 2, 2 };
120 if(armnn::IsQuantizedType<T>())
128 std::vector<T> input = std::vector<T>(
136 std::vector<T> outputExpected = std::vector<T>(
143 return SimplePermuteTestImpl<T>(workloadFactory, memoryManager,
144 descriptor, inputTensorInfo,
145 outputTensorInfo, input, outputExpected);
148 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
156 unsigned int inputShape[] = { 1, 3, 2, 2 };
157 unsigned int outputShape[] = { 1, 2, 2, 3 };
166 if(armnn::IsQuantizedType<T>())
174 std::vector<T> input = std::vector<T>(
181 std::vector<T> outputExpected = std::vector<T>(
189 return SimplePermuteTestImpl<T>(workloadFactory, memoryManager,
190 descriptor, inputTensorInfo,
191 outputTensorInfo, input, outputExpected);
194 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
202 unsigned int inputShape[] = { 1, 2, 3, 3 };
203 unsigned int outputShape[] = { 1, 3, 2, 3 };
212 if(armnn::IsQuantizedType<T>())
220 std::vector<T> input = std::vector<T>(
230 std::vector<T> outputExpected = std::vector<T>(
232 1, 11, 21, 31, 41, 51,
233 2, 12, 22, 32, 42, 52,
234 3, 13, 23, 33, 43, 53
237 return SimplePermuteTestImpl<T>(workloadFactory, memoryManager,
238 descriptor, inputTensorInfo,
239 outputTensorInfo, input, outputExpected);
LayerTestResult< T, 4 > SimplePermuteTestImpl(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, armnn::PermuteDescriptor descriptor, armnn::TensorInfo inputTensorInfo, armnn::TensorInfo outputTensorInfo, const std::vector< T > &inputData, const std::vector< T > &outputExpectedData)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
LayerTestResult< T, 4 > SimplePermuteTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerDescriptor m_Parameters
LayerTestResult< T, 4 > PermuteValueSet3Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 4 > PermuteValueSet1Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void SetQuantizationScale(float scale)
PermutationVector m_DimMappings
Indicates how to translate tensor elements from a given source into the target destination, when source and target potentially have different memory layouts e.g. {0U, 3U, 1U, 2U}.
LayerTestResult< T, 4 > PermuteValueSet2Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< IWorkload > CreatePermute(const PermuteQueueDescriptor &descriptor, const WorkloadInfo &info) const
A PermuteDescriptor for the PermuteLayer.
void SetQuantizationOffset(int32_t offset)