ArmNN
 21.02
RefNormalizationWorkload Class Reference

#include <RefNormalizationWorkload.hpp>

Inheritance diagram for RefNormalizationWorkload:
BaseWorkload< NormalizationQueueDescriptor > IWorkload

Public Member Functions

 RefNormalizationWorkload (const NormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
 
virtual void Execute () const override
 
- Public Member Functions inherited from BaseWorkload< NormalizationQueueDescriptor >
 BaseWorkload (const NormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
 
void PostAllocationConfigure () override
 
const NormalizationQueueDescriptorGetData () const
 
profiling::ProfilingGuid GetGuid () const final
 
- Public Member Functions inherited from IWorkload
virtual ~IWorkload ()
 
virtual void RegisterDebugCallback (const DebugCallbackFunction &)
 

Additional Inherited Members

- Protected Attributes inherited from BaseWorkload< NormalizationQueueDescriptor >
const NormalizationQueueDescriptor m_Data
 
const profiling::ProfilingGuid m_Guid
 

Detailed Description

Definition at line 14 of file RefNormalizationWorkload.hpp.

Constructor & Destructor Documentation

◆ RefNormalizationWorkload()

RefNormalizationWorkload ( const NormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
)
explicit

Definition at line 159 of file RefNormalizationWorkload.cpp.

161  : BaseWorkload(descriptor, info)
162 {}
BaseWorkload(const NormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
Definition: Workload.hpp:32

Member Function Documentation

◆ Execute()

void Execute ( ) const
overridevirtual

Implements IWorkload.

Definition at line 164 of file RefNormalizationWorkload.cpp.

References armnn::Across, ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, armnn::CpuRef, armnn::GetTensorInfo(), armnn::LocalBrightness, NormalizationDescriptor::m_Alpha, NormalizationDescriptor::m_Beta, BaseWorkload< NormalizationQueueDescriptor >::m_Data, NormalizationDescriptor::m_DataLayout, QueueDescriptor::m_Inputs, NormalizationDescriptor::m_K, NormalizationDescriptor::m_NormChannelType, NormalizationDescriptor::m_NormMethodType, NormalizationDescriptor::m_NormSize, QueueDescriptor::m_Outputs, QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters, armnn::warning, and armnn::Within.

165 {
166  ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefNormalizationWorkload_Execute");
167 
168  const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]);
169 
170  auto inputDecoder = MakeDecoder<float>(inputInfo, m_Data.m_Inputs[0]->Map());
171  auto outputEncoder = MakeEncoder<float>(inputInfo, m_Data.m_Outputs[0]->Map());
172 
174  {
176  {
177  NormalizeWithinUingLbr(*inputDecoder,
178  *outputEncoder,
179  inputInfo.GetShape(),
184  }
186  {
187  NormalizeAcrossUingLbr(*inputDecoder,
188  *outputEncoder,
189  inputInfo.GetShape(),
195  }
196  else
197  {
198  ARMNN_LOG(warning) << "Illegal NORMALIZATION mode in normalization_f32";
199  return;
200  }
201  }
202  else
203  {
204  ARMNN_LOG(warning) << "Lcr method (Jarret 2009: Local Contrast Normalization) not supported yet.";
205  return;
206  }
207 }
float m_K
Kappa value used for the across channel normalization equation.
CPU Execution: Reference C++ kernels.
float m_Alpha
Alpha value for the normalization equation.
const NormalizationQueueDescriptor m_Data
Definition: Workload.hpp:46
#define ARMNN_LOG(severity)
Definition: Logging.hpp:202
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
Definition: Profiling.hpp:173
NormalizationAlgorithmMethod m_NormMethodType
Normalization method algorithm to use (LocalBrightness, LocalContrast).
NormalizationAlgorithmChannel m_NormChannelType
Normalization channel algorithm to use (Across, Within).
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs
Krichevsky 2012: Local Brightness Normalization.
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
float m_Beta
Beta value for the normalization equation.
uint32_t m_NormSize
Depth radius value.

The documentation for this class was generated from the following files: