ArmNN
 21.11
MirrorPadTestImpl.cpp File Reference

Go to the source code of this file.

Functions

template<typename T >
LayerTestResult< T, 2 > MirrorPad2dTestCommon (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::TensorInfo &inputTensorInfo, const armnn::TensorInfo &outputTensorInfo, const std::vector< T > &inputValues, const std::vector< T > &expectedOutputValues, const std::vector< std::pair< unsigned int, unsigned int >> &padList, const armnn::PaddingMode paddingMode)
 
template<typename T >
LayerTestResult< T, 3 > MirrorPad3dTestCommon (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::TensorInfo &inputTensorInfo, const armnn::TensorInfo &outputTensorInfo, const std::vector< T > &inputValues, const std::vector< T > &expectedOutputValues, const std::vector< std::pair< unsigned int, unsigned int >> &padList, const armnn::PaddingMode paddingMode)
 
template<typename T >
LayerTestResult< T, 4 > MirrorPad4dTestCommon (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, const armnn::TensorInfo &inputTensorInfo, const armnn::TensorInfo &outputTensorInfo, const std::vector< T > &inputValues, const std::vector< T > &expectedOutputValues, const std::vector< std::pair< unsigned int, unsigned int >> &padList, const armnn::PaddingMode paddingMode)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 2 > PadSymmetric2dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 2 > PadReflect2dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 3 > PadSymmetric3dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 3 > PadReflect3dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 4 > PadSymmetric4dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
LayerTestResult< T, 4 > PadReflect4dTest (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, float qScale, int32_t qOffset)
 
LayerTestResult< armnn::Half, 2 > PadSymmetricFloat16 (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< armnn::Half, 2 > PadReflectFloat16 (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 2 > PadSymmetric2dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 2 > PadReflect2dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 3 > PadSymmetric3dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 3 > PadReflect3dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< uint8_t, 3 > PadSymmetric3dUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< uint8_t, 3 > PadReflect3dUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int8_t, 3 > PadSymmetric3dInt8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int8_t, 3 > PadReflect3dInt8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 4 > PadSymmetric4dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< float, 4 > PadReflect4dFloat32Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< armnn::BFloat16, 4 > PadSymmetric4dBFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< armnn::BFloat16, 4 > PadReflect4dBFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< uint8_t, 4 > PadSymmetric4dUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< uint8_t, 4 > PadReflect4dUint8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int8_t, 4 > PadSymmetric4dInt8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int8_t, 4 > PadReflect4dInt8Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int16_t, 4 > PadSymmetric4dInt16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< int16_t, 4 > PadReflect4dInt16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< armnn::Half, 2 > PadSymmetricFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 
LayerTestResult< armnn::Half, 2 > PadReflectFloat16Test (armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
 

Function Documentation

◆ MirrorPad2dTestCommon()

LayerTestResult<T, 2> MirrorPad2dTestCommon ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
const armnn::TensorInfo inputTensorInfo,
const armnn::TensorInfo outputTensorInfo,
const std::vector< T > &  inputValues,
const std::vector< T > &  expectedOutputValues,
const std::vector< std::pair< unsigned int, unsigned int >> &  padList,
const armnn::PaddingMode  paddingMode 
)

Definition at line 20 of file MirrorPadTestImpl.cpp.

References CopyDataFromITensorHandle(), CopyDataToITensorHandle(), IWorkloadFactory::CreatePad(), ITensorHandleFactory::CreateTensorHandle(), TensorInfo::GetNumElements(), TensorInfo::GetShape(), armnn::IgnoreUnused(), PadDescriptor::m_PaddingMode, PadDescriptor::m_PadList, and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

30 {
31  IgnoreUnused(memoryManager);
32  std::vector<T> actualOutput(outputTensorInfo.GetNumElements());
33 
34  std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.CreateTensorHandle(inputTensorInfo);
35  std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.CreateTensorHandle(outputTensorInfo);
36 
37  armnn::PadQueueDescriptor descriptor;
38 
39  descriptor.m_Parameters.m_PadList = padList;
40  descriptor.m_Parameters.m_PaddingMode = paddingMode;
42 
43  AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
44  AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
45 
46  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info);
47 
48  inputHandle->Allocate();
49  outputHandle->Allocate();
50 
51  CopyDataToITensorHandle(inputHandle.get(), inputValues.data());
52 
53  ExecuteWorkload(*workload, memoryManager);
54 
55  CopyDataFromITensorHandle(actualOutput.data(), outputHandle.get());
56 
57  return LayerTestResult<T, 2>(actualOutput,
58  expectedOutputValues,
59  outputHandle->GetShape(),
60  outputTensorInfo.GetShape());
61 }
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &descriptor, const WorkloadInfo &Info) const
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
PaddingMode m_PaddingMode
Specifies the Padding mode (Constant, Reflect or Symmetric)
Contains information about TensorInfos of a layer.
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
Definition: Tensor.hpp:196
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)

◆ MirrorPad3dTestCommon()

LayerTestResult<T, 3> MirrorPad3dTestCommon ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
const armnn::TensorInfo inputTensorInfo,
const armnn::TensorInfo outputTensorInfo,
const std::vector< T > &  inputValues,
const std::vector< T > &  expectedOutputValues,
const std::vector< std::pair< unsigned int, unsigned int >> &  padList,
const armnn::PaddingMode  paddingMode 
)

Definition at line 64 of file MirrorPadTestImpl.cpp.

References CopyDataFromITensorHandle(), CopyDataToITensorHandle(), IWorkloadFactory::CreatePad(), ITensorHandleFactory::CreateTensorHandle(), TensorInfo::GetNumElements(), TensorInfo::GetShape(), armnn::IgnoreUnused(), PadDescriptor::m_PaddingMode, PadDescriptor::m_PadList, and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

74 {
75  IgnoreUnused(memoryManager);
76  std::vector<T> actualOutput(outputTensorInfo.GetNumElements());
77 
78  std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.CreateTensorHandle(inputTensorInfo);
79  std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.CreateTensorHandle(outputTensorInfo);
80 
81  armnn::PadQueueDescriptor descriptor;
82  descriptor.m_Parameters.m_PadList = padList;
83  descriptor.m_Parameters.m_PaddingMode = paddingMode;
84 
86  AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
87  AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
88 
89  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info);
90 
91  inputHandle->Allocate();
92  outputHandle->Allocate();
93 
94  CopyDataToITensorHandle(inputHandle.get(), inputValues.data());
95 
96  ExecuteWorkload(*workload, memoryManager);
97 
98  CopyDataFromITensorHandle(actualOutput.data(), outputHandle.get());
99 
100  return LayerTestResult<T, 3>(actualOutput,
101  expectedOutputValues,
102  outputHandle->GetShape(),
103  outputTensorInfo.GetShape());
104 }
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &descriptor, const WorkloadInfo &Info) const
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
PaddingMode m_PaddingMode
Specifies the Padding mode (Constant, Reflect or Symmetric)
Contains information about TensorInfos of a layer.
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
Definition: Tensor.hpp:196
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)

◆ MirrorPad4dTestCommon()

LayerTestResult<T, 4> MirrorPad4dTestCommon ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
const armnn::TensorInfo inputTensorInfo,
const armnn::TensorInfo outputTensorInfo,
const std::vector< T > &  inputValues,
const std::vector< T > &  expectedOutputValues,
const std::vector< std::pair< unsigned int, unsigned int >> &  padList,
const armnn::PaddingMode  paddingMode 
)

Definition at line 107 of file MirrorPadTestImpl.cpp.

References CopyDataFromITensorHandle(), CopyDataToITensorHandle(), IWorkloadFactory::CreatePad(), ITensorHandleFactory::CreateTensorHandle(), TensorInfo::GetNumElements(), TensorInfo::GetShape(), armnn::IgnoreUnused(), PadDescriptor::m_PaddingMode, PadDescriptor::m_PadList, and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

117 {
118  IgnoreUnused(memoryManager);
119  std::vector<T> actualOutput(outputTensorInfo.GetNumElements());
120 
121  std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.CreateTensorHandle(inputTensorInfo);
122  std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.CreateTensorHandle(outputTensorInfo);
123 
124  armnn::PadQueueDescriptor descriptor;
125  descriptor.m_Parameters.m_PadList = padList;
126  descriptor.m_Parameters.m_PaddingMode = paddingMode;
127 
129  AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
130  AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
131 
132  std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info);
133 
134  inputHandle->Allocate();
135  outputHandle->Allocate();
136 
137  CopyDataToITensorHandle(inputHandle.get(), inputValues.data());
138 
139  ExecuteWorkload(*workload, memoryManager);
140 
141  CopyDataFromITensorHandle(actualOutput.data(), outputHandle.get());
142 
143  return LayerTestResult<T, 4>(actualOutput,
144  expectedOutputValues,
145  outputHandle->GetShape(),
146  outputTensorInfo.GetShape());
147 }
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &descriptor, const WorkloadInfo &Info) const
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
PaddingMode m_PaddingMode
Specifies the Padding mode (Constant, Reflect or Symmetric)
Contains information about TensorInfos of a layer.
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
Definition: Tensor.hpp:196
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)

◆ PadReflect2dFloat32Test()

LayerTestResult<float, 2> PadReflect2dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 939 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

943 {
944  return PadReflect2dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
945 }

◆ PadReflect2dTest()

LayerTestResult<T, 2> PadReflect2dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 202 of file MirrorPadTestImpl.cpp.

References armnn::Reflect.

208 {
209  const armnn::TensorShape inputShape{ 3, 3 };
210  const armnn::TensorShape outputShape{ 7, 7 };
211 
212  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
213  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
214 
215  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
216  {
217  // Height (3) x Width (3)
218  1, 2, 3,
219  4, 5, 6,
220  7, 8, 9
221  },
222  qScale, qOffset);
223 
224  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
225  {
226  9, 8, 7, 8, 9, 8, 7,
227  6, 5, 4, 5, 6, 5, 4,
228  3, 2, 1, 2, 3, 2, 1,
229  6, 5, 4, 5, 6, 5, 4,
230  9, 8, 7, 8, 9, 8, 7,
231  6, 5, 4, 5, 6, 5, 4,
232  3, 2, 1, 2, 3, 2, 1
233  },
234  qScale, qOffset);
235 
236  std::vector<std::pair<unsigned int, unsigned int>> padList;
237  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
238  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
239 
240  return MirrorPad2dTestCommon<T>(workloadFactory,
241  memoryManager,
242  tensorHandleFactory,
243  inputTensorInfo,
244  outputTensorInfo,
245  inputValues,
246  expectedOutputValues,
247  padList,
249 }

◆ PadReflect3dFloat32Test()

LayerTestResult<float, 3> PadReflect3dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 955 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

959 {
960  return PadReflect3dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
961 }

◆ PadReflect3dInt8Test()

LayerTestResult<int8_t, 3> PadReflect3dInt8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 988 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

992 {
993  return PadReflect3dTest<armnn::DataType::QAsymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 64);
994 }

◆ PadReflect3dTest()

LayerTestResult<T, 3> PadReflect3dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 320 of file MirrorPadTestImpl.cpp.

References armnn::Reflect.

326 {
327  const armnn::TensorShape inputShape{ 2, 2, 2 };
328  const armnn::TensorShape outputShape{ 4, 4, 4 };
329 
330  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
331  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
332 
333  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
334  {
335  // Channel 0, Height (2) x Width (2)
336  1, 2,
337  3, 4,
338 
339  // Channel 1, Height (2) x Width (2)
340  5, 6,
341  7, 8
342  },
343  qScale, qOffset);
344 
345  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
346  {
347  8, 7, 8, 7,
348  6, 5, 6, 5,
349  8, 7, 8, 7,
350  6, 5, 6, 5,
351 
352  4, 3, 4, 3,
353  2, 1, 2, 1,
354  4, 3, 4, 3,
355  2, 1, 2, 1,
356 
357  8, 7, 8, 7,
358  6, 5, 6, 5,
359  8, 7, 8, 7,
360  6, 5, 6, 5,
361 
362  4, 3, 4, 3,
363  2, 1, 2, 1,
364  4, 3, 4, 3,
365  2, 1, 2, 1
366  },
367  qScale, qOffset);
368 
369  std::vector<std::pair<unsigned int, unsigned int>> padList;
370  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
371  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
372  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
373 
374  return MirrorPad3dTestCommon<T>(workloadFactory,
375  memoryManager,
376  tensorHandleFactory,
377  inputTensorInfo,
378  outputTensorInfo,
379  inputValues,
380  expectedOutputValues,
381  padList,
383 }

◆ PadReflect3dUint8Test()

LayerTestResult<uint8_t, 3> PadReflect3dUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 972 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

976 {
977  return PadReflect3dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 128);
978 }

◆ PadReflect4dBFloat16Test()

LayerTestResult<armnn::BFloat16, 4> PadReflect4dBFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1020 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1024 {
1025  return PadReflect4dTest<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
1026 }

◆ PadReflect4dFloat32Test()

LayerTestResult<float, 4> PadReflect4dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1004 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1008 {
1009  return PadReflect4dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
1010 }

◆ PadReflect4dInt16Test()

LayerTestResult<int16_t, 4> PadReflect4dInt16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1069 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1073 {
1074  return PadReflect4dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, tensorHandleFactory, 2.0f, 0);
1075 }

◆ PadReflect4dInt8Test()

LayerTestResult<int8_t, 4> PadReflect4dInt8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1053 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1057 {
1058  return PadReflect4dTest<armnn::DataType::QAsymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 64);
1059 }

◆ PadReflect4dTest()

LayerTestResult<T, 4> PadReflect4dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 700 of file MirrorPadTestImpl.cpp.

References armnn::Reflect.

706 {
707  const armnn::TensorShape inputShape{ 2, 2, 2, 2 };
708  const armnn::TensorShape outputShape{ 4, 4, 4, 4 };
709 
710  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
711  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
712 
713  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
714  {
715  // Batch 0, Channel 0, Height (2) x Width (2)
716  1, 2,
717  3, 4,
718 
719  // Batch 0, Channel 1, Height (2) x Width (2)
720  5, 6,
721  7, 8,
722 
723  // Batch 1, Channel 0, Height (2) x Width (2)
724  9, 10,
725  11, 12,
726 
727  // Batch 1, Channel 1, Height (2) x Width (2)
728  13, 14,
729  15, 16,
730  },
731  qScale, qOffset);
732 
733  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
734  {
735  16, 15, 16, 15,
736  14, 13, 14, 13,
737  16, 15, 16, 15,
738  14, 13, 14, 13,
739 
740  12, 11, 12, 11,
741  10, 9, 10, 9,
742  12, 11, 12, 11,
743  10, 9, 10, 9,
744 
745  16, 15, 16, 15,
746  14, 13, 14, 13,
747  16, 15, 16, 15,
748  14, 13, 14, 13,
749 
750  12, 11, 12, 11,
751  10, 9, 10, 9,
752  12, 11, 12, 11,
753  10, 9, 10, 9,
754 
755 
756  8, 7, 8, 7,
757  6, 5, 6, 5,
758  8, 7, 8, 7,
759  6, 5, 6, 5,
760 
761  4, 3, 4, 3,
762  2, 1, 2, 1,
763  4, 3, 4, 3,
764  2, 1, 2, 1,
765 
766  8, 7, 8, 7,
767  6, 5, 6, 5,
768  8, 7, 8, 7,
769  6, 5, 6, 5,
770 
771  4, 3, 4, 3,
772  2, 1, 2, 1,
773  4, 3, 4, 3,
774  2, 1, 2, 1,
775 
776 
777  16, 15, 16, 15,
778  14, 13, 14, 13,
779  16, 15, 16, 15,
780  14, 13, 14, 13,
781 
782  12, 11, 12, 11,
783  10, 9, 10, 9,
784  12, 11, 12, 11,
785  10, 9, 10, 9,
786 
787  16, 15, 16, 15,
788  14, 13, 14, 13,
789  16, 15, 16, 15,
790  14, 13, 14, 13,
791 
792  12, 11, 12, 11,
793  10, 9, 10, 9,
794  12, 11, 12, 11,
795  10, 9, 10, 9,
796 
797 
798  8, 7, 8, 7,
799  6, 5, 6, 5,
800  8, 7, 8, 7,
801  6, 5, 6, 5,
802 
803  4, 3, 4, 3,
804  2, 1, 2, 1,
805  4, 3, 4, 3,
806  2, 1, 2, 1,
807 
808  8, 7, 8, 7,
809  6, 5, 6, 5,
810  8, 7, 8, 7,
811  6, 5, 6, 5,
812 
813  4, 3, 4, 3,
814  2, 1, 2, 1,
815  4, 3, 4, 3,
816  2, 1, 2, 1
817  },
818  qScale, qOffset);
819 
820  std::vector<std::pair<unsigned int, unsigned int>> padList;
821  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
822  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
823  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
824  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
825 
826  return MirrorPad4dTestCommon<T>(workloadFactory,
827  memoryManager,
828  tensorHandleFactory,
829  inputTensorInfo,
830  outputTensorInfo,
831  inputValues,
832  expectedOutputValues,
833  padList,
835 }

◆ PadReflect4dUint8Test()

LayerTestResult<uint8_t, 4> PadReflect4dUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1037 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1041 {
1042  return PadReflect4dTest<armnn::DataType::QAsymmU8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 128);
1043 }

◆ PadReflectFloat16()

LayerTestResult<armnn::Half, 2> PadReflectFloat16 ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 881 of file MirrorPadTestImpl.cpp.

References armnn::Float16, and armnn::Reflect.

Referenced by PadReflectFloat16Test(), and TEST_SUITE().

885 {
886  using namespace half_float::literal;
887 
888  const armnn::TensorShape inputShape{ 3, 3 };
889  const armnn::TensorShape outputShape{ 7, 5 };
890 
891  const armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float16);
892  const armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float16);
893 
894  const std::vector<armnn::Half> inputValues =
895  {
896  1._h, 2._h, 3._h,
897  4._h, 5._h, 6._h,
898  7._h, 8._h, 9._h
899  };
900 
901  std::vector<armnn::Half> expectedOutputValues =
902  {
903  8._h, 7._h, 8._h, 9._h, 8._h,
904  5._h, 4._h, 5._h, 6._h, 5._h,
905  2._h, 1._h, 2._h, 3._h, 2._h,
906  5._h, 4._h, 5._h, 6._h, 5._h,
907  8._h, 7._h, 8._h, 9._h, 8._h,
908  5._h, 4._h, 5._h, 6._h, 5._h,
909  2._h, 1._h, 2._h, 3._h, 2._h,
910  };
911 
912  std::vector<std::pair<unsigned int, unsigned int>> padList;
913  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
914  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
915 
916  return MirrorPad2dTestCommon<armnn::Half>(workloadFactory,
917  memoryManager,
918  tensorHandleFactory,
919  inputTensorInfo,
920  outputTensorInfo,
921  inputValues,
922  expectedOutputValues,
923  padList,
925 }

◆ PadReflectFloat16Test()

LayerTestResult<armnn::Half, 2> PadReflectFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1085 of file MirrorPadTestImpl.cpp.

References PadReflectFloat16().

Referenced by TEST_SUITE().

1089 {
1090  return PadReflectFloat16(workloadFactory, memoryManager, tensorHandleFactory);
1091 }
LayerTestResult< armnn::Half, 2 > PadReflectFloat16(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)

◆ PadSymmetric2dFloat32Test()

LayerTestResult<float, 2> PadSymmetric2dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 931 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

935 {
936  return PadSymmetric2dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
937 }

◆ PadSymmetric2dTest()

LayerTestResult<T, 2> PadSymmetric2dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 151 of file MirrorPadTestImpl.cpp.

References armnn::Symmetric.

157 {
158  const armnn::TensorShape inputShape{ 3, 3 };
159  const armnn::TensorShape outputShape{ 7, 7 };
160 
161  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
162  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
163 
164  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
165  {
166  // Height (3) x Width (3)
167  1, 2, 3,
168  4, 5, 6,
169  7, 8, 9
170  },
171  qScale, qOffset);
172 
173  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
174  {
175  5, 4, 4, 5, 6, 6, 5,
176  2, 1, 1, 2, 3, 3, 2,
177  2, 1, 1, 2, 3, 3, 2,
178  5, 4, 4, 5, 6, 6, 5,
179  8, 7, 7, 8, 9, 9, 8,
180  8, 7, 7, 8, 9, 9, 8,
181  5, 4, 4, 5, 6, 6, 5
182  },
183  qScale, qOffset);
184 
185  std::vector<std::pair<unsigned int, unsigned int>> padList;
186  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
187  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
188 
189  return MirrorPad2dTestCommon<T>(workloadFactory,
190  memoryManager,
191  tensorHandleFactory,
192  inputTensorInfo,
193  outputTensorInfo,
194  inputValues,
195  expectedOutputValues,
196  padList,
198 }

◆ PadSymmetric3dFloat32Test()

LayerTestResult<float, 3> PadSymmetric3dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 947 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

951 {
952  return PadSymmetric3dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
953 }

◆ PadSymmetric3dInt8Test()

LayerTestResult<int8_t, 3> PadSymmetric3dInt8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 980 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

984 {
985  return PadSymmetric3dTest<armnn::DataType::QAsymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 64);
986 }

◆ PadSymmetric3dTest()

LayerTestResult<T, 3> PadSymmetric3dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 253 of file MirrorPadTestImpl.cpp.

References armnn::Symmetric.

259 {
260  const armnn::TensorShape inputShape{ 2, 2, 2 };
261  const armnn::TensorShape outputShape{ 4, 4, 4 };
262 
263  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
264  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
265 
266  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
267  {
268  // Channel 0, Height (2) x Width (2)
269  1, 2,
270  3, 4,
271 
272  // Channel 1, Height (2) x Width (2)
273  5, 6,
274  7, 8
275  },
276  qScale, qOffset);
277 
278  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
279  {
280  1, 1, 2, 2,
281  1, 1, 2, 2,
282  3, 3, 4, 4,
283  3, 3, 4, 4,
284 
285  1, 1, 2, 2,
286  1, 1, 2, 2,
287  3, 3, 4, 4,
288  3, 3, 4, 4,
289 
290  5, 5, 6, 6,
291  5, 5, 6, 6,
292  7, 7, 8, 8,
293  7, 7, 8, 8,
294 
295  5, 5, 6, 6,
296  5, 5, 6, 6,
297  7, 7, 8, 8,
298  7, 7, 8, 8
299  },
300  qScale, qOffset);
301 
302  std::vector<std::pair<unsigned int, unsigned int>> padList;
303  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
304  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
305  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
306 
307  return MirrorPad3dTestCommon<T>(workloadFactory,
308  memoryManager,
309  tensorHandleFactory,
310  inputTensorInfo,
311  outputTensorInfo,
312  inputValues,
313  expectedOutputValues,
314  padList,
316 }

◆ PadSymmetric3dUint8Test()

LayerTestResult<uint8_t, 3> PadSymmetric3dUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 963 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

967 {
968  return PadSymmetric3dTest<armnn::DataType::QAsymmU8>(
969  workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 128);
970 }

◆ PadSymmetric4dBFloat16Test()

LayerTestResult<armnn::BFloat16, 4> PadSymmetric4dBFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1012 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1016 {
1017  return PadSymmetric4dTest<armnn::DataType::BFloat16>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
1018 }

◆ PadSymmetric4dFloat32Test()

LayerTestResult<float, 4> PadSymmetric4dFloat32Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 996 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1000 {
1001  return PadSymmetric4dTest<armnn::DataType::Float32>(workloadFactory, memoryManager, tensorHandleFactory, 0.0f, 0);
1002 }

◆ PadSymmetric4dInt16Test()

LayerTestResult<int16_t, 4> PadSymmetric4dInt16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1061 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1065 {
1066  return PadSymmetric4dTest<armnn::DataType::QSymmS16>(workloadFactory, memoryManager, tensorHandleFactory, 2.0f, 0);
1067 }

◆ PadSymmetric4dInt8Test()

LayerTestResult<int8_t, 4> PadSymmetric4dInt8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1045 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1049 {
1050  return PadSymmetric4dTest<armnn::DataType::QAsymmS8>(workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 64);
1051 }

◆ PadSymmetric4dTest()

LayerTestResult<T, 4> PadSymmetric4dTest ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory,
float  qScale,
int32_t  qOffset 
)

Definition at line 387 of file MirrorPadTestImpl.cpp.

References armnn::Symmetric.

393 {
394  const armnn::TensorShape inputShape{ 2, 2, 2, 2 };
395  const armnn::TensorShape outputShape{ 6, 6, 6, 6 };
396 
397  const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType, qScale, qOffset);
398  const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType, qScale, qOffset);
399 
400  std::vector<T> inputValues = armnnUtils::QuantizedVector<T>(
401  {
402  // Batch 0, Channel 0, Height (2) x Width (2)
403  1, 2,
404  3, 4,
405 
406  // Batch 0, Channel 1, Height (2) x Width (2)
407  5, 6,
408  7, 8,
409 
410  // Batch 1, Channel 0, Height (2) x Width (2)
411  9, 10,
412  11, 12,
413 
414  // Batch 1, Channel 1, Height (2) x Width (2)
415  13, 14,
416  15, 16,
417  },
418  qScale, qOffset);
419 
420  std::vector<T> expectedOutputValues = armnnUtils::QuantizedVector<T>(
421  {
422  16, 15, 15, 16, 16, 15,
423  14, 13, 13, 14, 14, 13,
424  14, 13, 13, 14, 14, 13,
425  16, 15, 15, 16, 16, 15,
426  16, 15, 15, 16, 16, 15,
427  14, 13, 13, 14, 14, 13,
428 
429  12, 11, 11, 12, 12, 11,
430  10, 9, 9, 10, 10, 9,
431  10, 9, 9, 10, 10, 9,
432  12, 11, 11, 12, 12, 11,
433  12, 11, 11, 12, 12, 11,
434  10, 9, 9, 10, 10, 9,
435 
436  12, 11, 11, 12, 12, 11,
437  10, 9, 9, 10, 10, 9,
438  10, 9, 9, 10, 10, 9,
439  12, 11, 11, 12, 12, 11,
440  12, 11, 11, 12, 12, 11,
441  10, 9, 9, 10, 10, 9,
442 
443  16, 15, 15, 16, 16, 15,
444  14, 13, 13, 14, 14, 13,
445  14, 13, 13, 14, 14, 13,
446  16, 15, 15, 16, 16, 15,
447  16, 15, 15, 16, 16, 15,
448  14, 13, 13, 14, 14, 13,
449 
450  16, 15, 15, 16, 16, 15,
451  14, 13, 13, 14, 14, 13,
452  14, 13, 13, 14, 14, 13,
453  16, 15, 15, 16, 16, 15,
454  16, 15, 15, 16, 16, 15,
455  14, 13, 13, 14, 14, 13,
456 
457  12, 11, 11, 12, 12, 11,
458  10, 9, 9, 10, 10, 9,
459  10, 9, 9, 10, 10, 9,
460  12, 11, 11, 12, 12, 11,
461  12, 11, 11, 12, 12, 11,
462  10, 9, 9, 10, 10, 9,
463 
464 
465  8, 7, 7, 8, 8, 7,
466  6, 5, 5, 6, 6, 5,
467  6, 5, 5, 6, 6, 5,
468  8, 7, 7, 8, 8, 7,
469  8, 7, 7, 8, 8, 7,
470  6, 5, 5, 6, 6, 5,
471 
472  4, 3, 3, 4, 4, 3,
473  2, 1, 1, 2, 2, 1,
474  2, 1, 1, 2, 2, 1,
475  4, 3, 3, 4, 4, 3,
476  4, 3, 3, 4, 4, 3,
477  2, 1, 1, 2, 2, 1,
478 
479  4, 3, 3, 4, 4, 3,
480  2, 1, 1, 2, 2, 1,
481  2, 1, 1, 2, 2, 1,
482  4, 3, 3, 4, 4, 3,
483  4, 3, 3, 4, 4, 3,
484  2, 1, 1, 2, 2, 1,
485 
486  8, 7, 7, 8, 8, 7,
487  6, 5, 5, 6, 6, 5,
488  6, 5, 5, 6, 6, 5,
489  8, 7, 7, 8, 8, 7,
490  8, 7, 7, 8, 8, 7,
491  6, 5, 5, 6, 6, 5,
492 
493  8, 7, 7, 8, 8, 7,
494  6, 5, 5, 6, 6, 5,
495  6, 5, 5, 6, 6, 5,
496  8, 7, 7, 8, 8, 7,
497  8, 7, 7, 8, 8, 7,
498  6, 5, 5, 6, 6, 5,
499 
500  4, 3, 3, 4, 4, 3,
501  2, 1, 1, 2, 2, 1,
502  2, 1, 1, 2, 2, 1,
503  4, 3, 3, 4, 4, 3,
504  4, 3, 3, 4, 4, 3,
505  2, 1, 1, 2, 2, 1,
506 
507 
508  8, 7, 7, 8, 8, 7,
509  6, 5, 5, 6, 6, 5,
510  6, 5, 5, 6, 6, 5,
511  8, 7, 7, 8, 8, 7,
512  8, 7, 7, 8, 8, 7,
513  6, 5, 5, 6, 6, 5,
514 
515  4, 3, 3, 4, 4, 3,
516  2, 1, 1, 2, 2, 1,
517  2, 1, 1, 2, 2, 1,
518  4, 3, 3, 4, 4, 3,
519  4, 3, 3, 4, 4, 3,
520  2, 1, 1, 2, 2, 1,
521 
522  4, 3, 3, 4, 4, 3,
523  2, 1, 1, 2, 2, 1,
524  2, 1, 1, 2, 2, 1,
525  4, 3, 3, 4, 4, 3,
526  4, 3, 3, 4, 4, 3,
527  2, 1, 1, 2, 2, 1,
528 
529  8, 7, 7, 8, 8, 7,
530  6, 5, 5, 6, 6, 5,
531  6, 5, 5, 6, 6, 5,
532  8, 7, 7, 8, 8, 7,
533  8, 7, 7, 8, 8, 7,
534  6, 5, 5, 6, 6, 5,
535 
536  8, 7, 7, 8, 8, 7,
537  6, 5, 5, 6, 6, 5,
538  6, 5, 5, 6, 6, 5,
539  8, 7, 7, 8, 8, 7,
540  8, 7, 7, 8, 8, 7,
541  6, 5, 5, 6, 6, 5,
542 
543  4, 3, 3, 4, 4, 3,
544  2, 1, 1, 2, 2, 1,
545  2, 1, 1, 2, 2, 1,
546  4, 3, 3, 4, 4, 3,
547  4, 3, 3, 4, 4, 3,
548  2, 1, 1, 2, 2, 1,
549 
550 
551  16, 15, 15, 16, 16, 15,
552  14, 13, 13, 14, 14, 13,
553  14, 13, 13, 14, 14, 13,
554  16, 15, 15, 16, 16, 15,
555  16, 15, 15, 16, 16, 15,
556  14, 13, 13, 14, 14, 13,
557 
558  12, 11, 11, 12, 12, 11,
559  10, 9, 9, 10, 10, 9,
560  10, 9, 9, 10, 10, 9,
561  12, 11, 11, 12, 12, 11,
562  12, 11, 11, 12, 12, 11,
563  10, 9, 9, 10, 10, 9,
564 
565  12, 11, 11, 12, 12, 11,
566  10, 9, 9, 10, 10, 9,
567  10, 9, 9, 10, 10, 9,
568  12, 11, 11, 12, 12, 11,
569  12, 11, 11, 12, 12, 11,
570  10, 9, 9, 10, 10, 9,
571 
572  16, 15, 15, 16, 16, 15,
573  14, 13, 13, 14, 14, 13,
574  14, 13, 13, 14, 14, 13,
575  16, 15, 15, 16, 16, 15,
576  16, 15, 15, 16, 16, 15,
577  14, 13, 13, 14, 14, 13,
578 
579  16, 15, 15, 16, 16, 15,
580  14, 13, 13, 14, 14, 13,
581  14, 13, 13, 14, 14, 13,
582  16, 15, 15, 16, 16, 15,
583  16, 15, 15, 16, 16, 15,
584  14, 13, 13, 14, 14, 13,
585 
586  12, 11, 11, 12, 12, 11,
587  10, 9, 9, 10, 10, 9,
588  10, 9, 9, 10, 10, 9,
589  12, 11, 11, 12, 12, 11,
590  12, 11, 11, 12, 12, 11,
591  10, 9, 9, 10, 10, 9,
592 
593 
594  16, 15, 15, 16, 16, 15,
595  14, 13, 13, 14, 14, 13,
596  14, 13, 13, 14, 14, 13,
597  16, 15, 15, 16, 16, 15,
598  16, 15, 15, 16, 16, 15,
599  14, 13, 13, 14, 14, 13,
600 
601  12, 11, 11, 12, 12, 11,
602  10, 9, 9, 10, 10, 9,
603  10, 9, 9, 10, 10, 9,
604  12, 11, 11, 12, 12, 11,
605  12, 11, 11, 12, 12, 11,
606  10, 9, 9, 10, 10, 9,
607 
608  12, 11, 11, 12, 12, 11,
609  10, 9, 9, 10, 10, 9,
610  10, 9, 9, 10, 10, 9,
611  12, 11, 11, 12, 12, 11,
612  12, 11, 11, 12, 12, 11,
613  10, 9, 9, 10, 10, 9,
614 
615  16, 15, 15, 16, 16, 15,
616  14, 13, 13, 14, 14, 13,
617  14, 13, 13, 14, 14, 13,
618  16, 15, 15, 16, 16, 15,
619  16, 15, 15, 16, 16, 15,
620  14, 13, 13, 14, 14, 13,
621 
622  16, 15, 15, 16, 16, 15,
623  14, 13, 13, 14, 14, 13,
624  14, 13, 13, 14, 14, 13,
625  16, 15, 15, 16, 16, 15,
626  16, 15, 15, 16, 16, 15,
627  14, 13, 13, 14, 14, 13,
628 
629  12, 11, 11, 12, 12, 11,
630  10, 9, 9, 10, 10, 9,
631  10, 9, 9, 10, 10, 9,
632  12, 11, 11, 12, 12, 11,
633  12, 11, 11, 12, 12, 11,
634  10, 9, 9, 10, 10, 9,
635 
636 
637  8, 7, 7, 8, 8, 7,
638  6, 5, 5, 6, 6, 5,
639  6, 5, 5, 6, 6, 5,
640  8, 7, 7, 8, 8, 7,
641  8, 7, 7, 8, 8, 7,
642  6, 5, 5, 6, 6, 5,
643 
644  4, 3, 3, 4, 4, 3,
645  2, 1, 1, 2, 2, 1,
646  2, 1, 1, 2, 2, 1,
647  4, 3, 3, 4, 4, 3,
648  4, 3, 3, 4, 4, 3,
649  2, 1, 1, 2, 2, 1,
650 
651  4, 3, 3, 4, 4, 3,
652  2, 1, 1, 2, 2, 1,
653  2, 1, 1, 2, 2, 1,
654  4, 3, 3, 4, 4, 3,
655  4, 3, 3, 4, 4, 3,
656  2, 1, 1, 2, 2, 1,
657 
658  8, 7, 7, 8, 8, 7,
659  6, 5, 5, 6, 6, 5,
660  6, 5, 5, 6, 6, 5,
661  8, 7, 7, 8, 8, 7,
662  8, 7, 7, 8, 8, 7,
663  6, 5, 5, 6, 6, 5,
664 
665  8, 7, 7, 8, 8, 7,
666  6, 5, 5, 6, 6, 5,
667  6, 5, 5, 6, 6, 5,
668  8, 7, 7, 8, 8, 7,
669  8, 7, 7, 8, 8, 7,
670  6, 5, 5, 6, 6, 5,
671 
672  4, 3, 3, 4, 4, 3,
673  2, 1, 1, 2, 2, 1,
674  2, 1, 1, 2, 2, 1,
675  4, 3, 3, 4, 4, 3,
676  4, 3, 3, 4, 4, 3,
677  2, 1, 1, 2, 2, 1
678  },
679  qScale, qOffset);
680 
681  std::vector<std::pair<unsigned int, unsigned int>> padList;
682  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
683  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
684  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
685  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
686 
687  return MirrorPad4dTestCommon<T>(workloadFactory,
688  memoryManager,
689  tensorHandleFactory,
690  inputTensorInfo,
691  outputTensorInfo,
692  inputValues,
693  expectedOutputValues,
694  padList,
696 }

◆ PadSymmetric4dUint8Test()

LayerTestResult<uint8_t, 4> PadSymmetric4dUint8Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1028 of file MirrorPadTestImpl.cpp.

Referenced by TEST_SUITE().

1032 {
1033  return PadSymmetric4dTest<armnn::DataType::QAsymmU8>(
1034  workloadFactory, memoryManager, tensorHandleFactory, 0.1f, 128);
1035 }

◆ PadSymmetricFloat16()

LayerTestResult<armnn::Half, 2> PadSymmetricFloat16 ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 837 of file MirrorPadTestImpl.cpp.

References armnn::Float16, and armnn::Symmetric.

Referenced by PadSymmetricFloat16Test(), and TEST_SUITE().

841 {
842  using namespace half_float::literal;
843 
844  const armnn::TensorShape inputShape{ 3, 3 };
845  const armnn::TensorShape outputShape{ 5, 7 };
846 
847  const armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float16);
848  const armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float16);
849 
850  const std::vector<armnn::Half> inputValues =
851  {
852  1._h, 2._h, 3._h,
853  4._h, 5._h, 6._h,
854  7._h, 8._h, 9._h
855  };
856 
857  std::vector<armnn::Half> expectedOutputValues =
858  {
859  2._h, 1._h, 1._h, 2._h, 3._h, 3._h, 2._h,
860  2._h, 1._h, 1._h, 2._h, 3._h, 3._h, 2._h,
861  5._h, 4._h, 4._h, 5._h, 6._h, 6._h, 5._h,
862  8._h, 7._h, 7._h, 8._h, 9._h, 9._h, 8._h,
863  8._h, 7._h, 7._h, 8._h, 9._h, 9._h, 8._h,
864  };
865 
866  std::vector<std::pair<unsigned int, unsigned int>> padList;
867  padList.push_back(std::pair<unsigned int, unsigned int>(1,1));
868  padList.push_back(std::pair<unsigned int, unsigned int>(2,2));
869 
870  return MirrorPad2dTestCommon<armnn::Half>(workloadFactory,
871  memoryManager,
872  tensorHandleFactory,
873  inputTensorInfo,
874  outputTensorInfo,
875  inputValues,
876  expectedOutputValues,
877  padList,
879 }

◆ PadSymmetricFloat16Test()

LayerTestResult<armnn::Half, 2> PadSymmetricFloat16Test ( armnn::IWorkloadFactory workloadFactory,
const armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager,
const armnn::ITensorHandleFactory tensorHandleFactory 
)

Definition at line 1077 of file MirrorPadTestImpl.cpp.

References PadSymmetricFloat16().

Referenced by TEST_SUITE().

1081 {
1082  return PadSymmetricFloat16(workloadFactory, memoryManager, tensorHandleFactory);
1083 }
LayerTestResult< armnn::Half, 2 > PadSymmetricFloat16(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)