ArmNN
 20.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 160 of file RefNormalizationWorkload.cpp.

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

Member Function Documentation

◆ Execute()

void Execute ( ) const
overridevirtual

Implements IWorkload.

Definition at line 165 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.

166 {
167  ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefNormalizationWorkload_Execute");
168 
169  const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]);
170 
171  auto inputDecoder = MakeDecoder<float>(inputInfo, m_Data.m_Inputs[0]->Map());
172  auto outputEncoder = MakeEncoder<float>(inputInfo, m_Data.m_Outputs[0]->Map());
173 
175  {
177  {
178  NormalizeWithinUingLbr(*inputDecoder,
179  *outputEncoder,
180  inputInfo.GetShape(),
185  }
187  {
188  NormalizeAcrossUingLbr(*inputDecoder,
189  *outputEncoder,
190  inputInfo.GetShape(),
196  }
197  else
198  {
199  ARMNN_LOG(warning) << "Illegal NORMALIZATION mode in normalization_f32";
200  return;
201  }
202  }
203  else
204  {
205  ARMNN_LOG(warning) << "Lcr method (Jarret 2009: Local Contrast Normalization) not supported yet.";
206  return;
207  }
208 }
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
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
#define ARMNN_LOG(severity)
Definition: Logging.hpp:163
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
Definition: Profiling.hpp:169
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.
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: