ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
onert::backend::cpu::ops::PoolLayer Class Reference

#include <PoolLayer.h>

Collaboration diagram for onert::backend::cpu::ops::PoolLayer:

Public Member Functions

 PoolLayer ()
 
void configure (const IPortableTensor *input, const uint32_t paddingLeft, const uint32_t paddingRight, const uint32_t paddingTop, const uint32_t paddingBottom, const uint32_t strideWidth, const uint32_t strideHeight, const uint32_t kernelWidth, const uint32_t kernelHeight, const ir::Activation activation, IPortableTensor *output, const PoolType op_type)
 
void run () override
 
- Public Member Functions inherited from onert::exec::IFunction
virtual ~IFunction ()=default
 
virtual void prepare ()
 

Protected Attributes

const IPortableTensor_input
 
IPortableTensor_output
 

Detailed Description

Definition at line 35 of file PoolLayer.h.

Constructor & Destructor Documentation

◆ PoolLayer()

onert::backend::cpu::ops::PoolLayer::PoolLayer ( )

Definition at line 64 of file PoolLayer.cc.

64 : _input(nullptr), _output(nullptr), _kernel()
65{
66 // DO NOTHING
67}
const IPortableTensor * _input
Definition PoolLayer.h:51

Member Function Documentation

◆ configure()

void onert::backend::cpu::ops::PoolLayer::configure ( const IPortableTensor input,
const uint32_t  paddingLeft,
const uint32_t  paddingRight,
const uint32_t  paddingTop,
const uint32_t  paddingBottom,
const uint32_t  strideWidth,
const uint32_t  strideHeight,
const uint32_t  kernelWidth,
const uint32_t  kernelHeight,
const ir::Activation  activation,
IPortableTensor output,
const PoolType  op_type 
)

Definition at line 82 of file PoolLayer.cc.

87{
88 assert(input != nullptr);
89 assert(output != nullptr);
90
91 _input = input;
93
95
96 switch (_input->data_type())
97 {
98 case OperandType::FLOAT32:
99 {
100 float output_activation_min = 0;
101 float output_activation_max = 0;
102 CalculateActivationRange<float>(activation, &output_activation_min, &output_activation_max);
103 op_params.float_activation_min = output_activation_min;
104 op_params.float_activation_max = output_activation_max;
105
106 _kernel = generateKernelGeneric<float>(op_params, op_type);
107 break;
108 }
109 case OperandType::QUANT_UINT8_ASYMM:
110 {
111 int32_t output_activation_min = 0;
112 int32_t output_activation_max = 0;
113 CalculateActivationRangeQuantized(activation, _output, &output_activation_min,
114 &output_activation_max);
115 op_params.quantized_activation_min = output_activation_min;
116 op_params.quantized_activation_max = output_activation_max;
117 _kernel = generateKernelGeneric<uint8_t>(op_params, op_type);
118 break;
119 }
120 case OperandType::QUANT_INT8_ASYMM:
121 {
122 int32_t output_activation_min = 0;
123 int32_t output_activation_max = 0;
124 CalculateActivationRangeQuantized(activation, _output, &output_activation_min,
125 &output_activation_max);
126 op_params.quantized_activation_min = output_activation_min;
127 op_params.quantized_activation_max = output_activation_max;
128 _kernel = generateKernelGeneric<int8_t>(op_params, op_type);
129 break;
130 }
131 default:
132 throw std::runtime_error{"Pool: unsupported data type"};
133 }
134}
ir::DataType data_type() const override final
#define POOLING_PARAMETERS
Definition PoolLayer.cc:69
void CalculateActivationRangeQuantized(ir::Activation activation, const IPortableTensor *output, int32_t *act_min, int32_t *act_max)

References _input, _output, onert::backend::cpu::ops::CalculateActivationRangeQuantized(), onert::backend::IPortableTensor::data_type(), and POOLING_PARAMETERS.

◆ run()

void onert::backend::cpu::ops::PoolLayer::run ( )
overridevirtual

Implements onert::exec::IFunction.

Definition at line 136 of file PoolLayer.cc.

136{ _kernel(_input, _output); }

References _input, and _output.

Referenced by onert::backend::train::ops::PoolLayer::forward().

Field Documentation

◆ _input

const IPortableTensor* onert::backend::cpu::ops::PoolLayer::_input
protected

Definition at line 51 of file PoolLayer.h.

Referenced by configure(), onert::backend::train::ops::PoolLayer::forward(), and run().

◆ _output

IPortableTensor* onert::backend::cpu::ops::PoolLayer::_output
protected

Definition at line 52 of file PoolLayer.h.

Referenced by configure(), onert::backend::train::ops::PoolLayer::forward(), and run().


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