Loading...
Searching...
No Matches
opennn::PoolOperator Struct Reference

#include <opennn/network/layers/pooling_layer.h>

Inheritance diagram for opennn::PoolOperator:
opennn::Operator

Public Types

enum  Method { Max , Average }
 

Public Member Functions

Index get_output_height () const noexcept
 
Index get_output_width () const noexcept
 
void refresh_descriptor ()
 
void set (Index, Index, Index, Index, Index, Index, Index, Index, Index, Method)
 
 PoolOperator ()=default
 
 PoolOperator (const PoolOperator &)=delete
 
PoolOperator & operator= (const PoolOperator &)=delete
 
void forward_propagate (ForwardPropagation &, size_t, ForwardPropagationMode) override
 
void back_propagate (ForwardPropagation &, BackPropagation &, size_t) const override
 
DnnPoolingDescriptor get_pooling_descriptor () const
 
bool own_max_pooling (const TensorView &input, const TensorView &mask) const noexcept
 
::MaxPoolGeometry max_pool_geometry (const TensorView &input) const noexcept
 
- Public Member Functions inherited from opennn::Operator
virtual ~Operator ()=default
 
virtual vector< TensorSpec > parameter_specs () const
 
virtual vector< TensorSpec > state_specs () const
 
virtual vector< SlotQuantization > parameter_quantization () const
 
virtual vector< ParameterSlot > parameter_slots ()
 
virtual void link_parameters (span< const TensorView > views)
 
virtual void link_gradients (span< const TensorView > views)
 
virtual void link_states (span< const TensorView >)
 
virtual void link_parameter_scales (span< const TensorView >)
 
bool link_slots (span< const TensorView > views, TensorView *ParameterSlot::*member)
 
virtual void initialize_states ()
 
virtual void set_weights_dtype (Type new_weights_dtype)
 
virtual void set_parameters_random ()
 
virtual void set_parameters_glorot ()
 
virtual void set_parameters_pytorch ()
 
virtual void to_JSON (JsonWriter &) const
 
virtual void from_JSON (const Json *)
 
virtual void load_state_from_JSON (const Json *)
 
TensorView & get_input (ForwardPropagation &forward_propagation, size_t layer, size_t slot_index=0) const noexcept
 
vector< TensorView > & get_inputs (ForwardPropagation &forward_propagation, size_t layer) const noexcept
 
TensorView & get_output (ForwardPropagation &forward_propagation, size_t layer, size_t slot_index=0) const noexcept
 
TensorView & get_output_delta (BackPropagation &back_propagation, size_t layer, size_t slot_index=0) const noexcept
 
TensorView & get_input_delta (BackPropagation &back_propagation, size_t layer, size_t slot_index=0) const noexcept
 

Public Attributes

Index input_height = 0
 
Index input_width = 0
 
Index input_channels = 0
 
Index pool_height = 1
 
Index pool_width = 1
 
Index row_stride = 1
 
Index column_stride = 1
 
Index padding_height = 0
 
Index padding_width = 0
 
Method method = Max
 
- Public Attributes inherited from opennn::Operator
Type compute_dtype = Type::FP32
 
Type weights_dtype = Type::FP32
 
vector< size_t > input_slots = {0}
 
vector< size_t > output_slots = {1}
 
vector< size_t > input_delta_slots = {1}
 
vector< size_t > output_delta_slots = {0}
 

Member Enumeration Documentation

◆ Method

Enumerator
Max 
Average 

Constructor & Destructor Documentation

◆ PoolOperator() [1/2]

opennn::PoolOperator::PoolOperator ( )
default

◆ PoolOperator() [2/2]

opennn::PoolOperator::PoolOperator ( const PoolOperator & )
delete

Member Function Documentation

◆ back_propagate()

void opennn::PoolOperator::back_propagate ( ForwardPropagation & ,
BackPropagation & ,
size_t  ) const
overridevirtual

Reimplemented from opennn::Operator.

◆ forward_propagate()

void opennn::PoolOperator::forward_propagate ( ForwardPropagation & ,
size_t ,
ForwardPropagationMode  )
overridevirtual

Reimplemented from opennn::Operator.

◆ get_output_height()

Index opennn::PoolOperator::get_output_height ( ) const
noexcept

◆ get_output_width()

Index opennn::PoolOperator::get_output_width ( ) const
noexcept

◆ get_pooling_descriptor()

DnnPoolingDescriptor opennn::PoolOperator::get_pooling_descriptor ( ) const

◆ max_pool_geometry()

::MaxPoolGeometry opennn::PoolOperator::max_pool_geometry ( const TensorView & input) const
noexcept

◆ operator=()

PoolOperator & opennn::PoolOperator::operator= ( const PoolOperator & )
delete

◆ own_max_pooling()

bool opennn::PoolOperator::own_max_pooling ( const TensorView & input,
const TensorView & mask ) const
noexcept

◆ refresh_descriptor()

void opennn::PoolOperator::refresh_descriptor ( )

◆ set()

void opennn::PoolOperator::set ( Index ,
Index ,
Index ,
Index ,
Index ,
Index ,
Index ,
Index ,
Index ,
Method  )

Member Data Documentation

◆ column_stride

Index opennn::PoolOperator::column_stride = 1

◆ input_channels

Index opennn::PoolOperator::input_channels = 0

◆ input_height

Index opennn::PoolOperator::input_height = 0

◆ input_width

Index opennn::PoolOperator::input_width = 0

◆ method

Method opennn::PoolOperator::method = Max

◆ padding_height

Index opennn::PoolOperator::padding_height = 0

◆ padding_width

Index opennn::PoolOperator::padding_width = 0

◆ pool_height

Index opennn::PoolOperator::pool_height = 1

◆ pool_width

Index opennn::PoolOperator::pool_width = 1

◆ row_stride

Index opennn::PoolOperator::row_stride = 1