|
OpenNN
Open-source neural networks library
|
2D pooling operator supporting max and average reductions. More...
#include <operators.h>
Public Types | |
| enum | Method { Max , Average } |
| Supported pooling reductions. More... | |
Public Member Functions | |
| void | set (Index input_h, Index input_w, Index input_c, Index pool_h, Index pool_w, Index row_stride, Index column_stride, Index padding_h, Index padding_w, Method method) |
| Configures the pooling geometry. | |
| void | destroy_cuda () override |
| Releases CUDA resources owned by the operator; called from destructors. | |
| ~PoolOp () override | |
| PoolOp ()=default | |
| PoolOp (const PoolOp &)=delete | |
| PoolOp & | operator= (const PoolOp &)=delete |
| void | forward_propagate (ForwardPropagation &fp, size_t layer, bool is_training) noexcept override |
| Runs the operator's forward computation. | |
| void | back_propagate (ForwardPropagation &fp, BackPropagation &bp, size_t layer) const noexcept override |
| Runs the operator's backward computation, accumulating into gradient/delta buffers. | |
Public Member Functions inherited from opennn::Operator | |
| virtual | ~Operator ()=default |
| virtual vector< TensorSpec > | parameter_specs () const |
| Returns the tensor specs of trainable parameters owned by this operator. | |
| virtual vector< TensorSpec > | state_specs () const |
| Returns the tensor specs of persistent state owned by this operator. | |
| virtual void | link_parameters (span< const TensorView >) |
| Binds parameter views provided by the hosting layer. | |
| virtual void | link_gradients (span< const TensorView >) |
| Binds gradient views provided by the hosting layer. | |
| virtual void | link_states (span< const TensorView >) |
| Binds state views provided by the hosting layer. | |
| virtual void | set_parameters_random () |
| Initializes parameters with random values. | |
| virtual void | set_parameters_glorot () |
| Initializes parameters using Glorot (Xavier) initialization. | |
| virtual void | to_JSON (JsonWriter &) const |
| Serializes the operator configuration to a JSON writer. | |
| virtual void | from_JSON (const Json *) |
| Restores the operator configuration from a JSON node. | |
| virtual void | load_state_from_JSON (const Json *) |
| Restores persistent state (e.g. running statistics) from a JSON node. | |
| TensorView & | get_input (ForwardPropagation &fp, size_t layer, size_t i=0) const noexcept |
| vector< TensorView > & | get_inputs (ForwardPropagation &fp, size_t layer, size_t i=0) const noexcept |
| TensorView & | get_output (ForwardPropagation &fp, size_t layer, size_t i=0) const noexcept |
| TensorView & | get_output_delta (BackPropagation &bp, size_t layer, size_t i=0) const noexcept |
| TensorView & | get_input_delta (BackPropagation &bp, size_t layer, size_t i=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 | |
| 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} |
2D pooling operator supporting max and average reductions.
|
inlineoverride |
|
default |
|
delete |
|
overridevirtualnoexcept |
Runs the operator's backward computation, accumulating into gradient/delta buffers.
| fp | Forward propagation workspace (read-only). |
| bp | Back propagation workspace receiving gradients and deltas. |
| layer | Index of the hosting layer in the workspace. |
Reimplemented from opennn::Operator.
|
overridevirtual |
Releases CUDA resources owned by the operator; called from destructors.
Reimplemented from opennn::Operator.
|
overridevirtualnoexcept |
Runs the operator's forward computation.
| fp | Forward propagation workspace. |
| layer | Index of the hosting layer in the workspace. |
| is_training | If true, enables training-only behavior (e.g. dropout sampling). |
Reimplemented from opennn::Operator.
| void opennn::PoolOp::set | ( | Index | input_h, |
| Index | input_w, | ||
| Index | input_c, | ||
| Index | pool_h, | ||
| Index | pool_w, | ||
| Index | row_stride, | ||
| Index | column_stride, | ||
| Index | padding_h, | ||
| Index | padding_w, | ||
| Method | method ) |
Configures the pooling geometry.
| input_h | Input height in pixels. |
| input_w | Input width in pixels. |
| input_c | Number of input channels. |
| pool_h | Pooling window height. |
| pool_w | Pooling window width. |
| row_stride | Vertical stride. |
| column_stride | Horizontal stride. |
| padding_h | Vertical padding. |
| padding_w | Horizontal padding. |
| method | Reduction method (Max or Average). |
| Index opennn::PoolOp::column_stride = 1 |
| Index opennn::PoolOp::input_channels = 0 |
| Index opennn::PoolOp::input_height = 0 |
| Index opennn::PoolOp::input_width = 0 |
| Index opennn::PoolOp::padding_height = 0 |
| Index opennn::PoolOp::padding_width = 0 |
| Index opennn::PoolOp::pool_height = 1 |
| Index opennn::PoolOp::pool_width = 1 |
| Index opennn::PoolOp::row_stride = 1 |