#include <opennn/network/operators/operator.h>
Classes | |
| struct | ParameterSlot |
| struct | SlotQuantization |
Public Member Functions | |
| 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 | forward_propagate (ForwardPropagation &, size_t, ForwardPropagationMode) |
| virtual void | back_propagate (ForwardPropagation &, BackPropagation &, size_t) const |
| 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 | |
| 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} |
Constructor & Destructor Documentation
◆ ~Operator()
|
virtualdefault |
Member Function Documentation
◆ back_propagate()
|
inlinevirtual |
Reimplemented in opennn::ActivationOperator, opennn::AdditionOperator, opennn::AttentionOperator, opennn::BatchNormalizationOperator, opennn::C2PSAOperator, opennn::CombinationOperator, opennn::ConcatenationOperator, opennn::ConvolutionOperator, opennn::DetectionOperator, opennn::DetectionV8Operator, opennn::DropoutOperator, opennn::EmbeddingLookupOperator, opennn::GroupedQueryAttentionOperator, opennn::LayerNormalizationOperator, opennn::LSTMOperator, opennn::MultiHeadProjectionOperator, opennn::Pool3dOperator, opennn::PoolOperator, opennn::RecurrentOperator, opennn::SwiGLUOperator, and opennn::UpsamplingOperator.
◆ forward_propagate()
|
inlinevirtual |
Reimplemented in opennn::ActivationOperator, opennn::AdditionOperator, opennn::AttentionOperator, opennn::BatchNormalizationOperator, opennn::C2PSAOperator, opennn::ClampingOperator, opennn::CombinationOperator, opennn::ConcatenationOperator, opennn::ConvolutionOperator, opennn::DetectionOperator, opennn::DetectionV8Operator, opennn::DropoutOperator, opennn::EmbeddingLookupOperator, opennn::GroupedQueryAttentionOperator, opennn::LayerNormalizationOperator, opennn::LSTMOperator, opennn::MultiHeadProjectionOperator, opennn::NonMaxSuppressionOperator, opennn::Pool3dOperator, opennn::PoolOperator, opennn::RecurrentOperator, opennn::ScaleOperator, opennn::SwiGLUOperator, and opennn::UpsamplingOperator.
◆ from_JSON()
|
inlinevirtual |
◆ get_input()
|
inlinenoexcept |
◆ get_input_delta()
|
inlinenoexcept |
◆ get_inputs()
|
inlinenoexcept |
◆ get_output()
|
inlinenoexcept |
◆ get_output_delta()
|
inlinenoexcept |
◆ initialize_states()
|
inlinevirtual |
Reimplemented in opennn::BatchNormalizationOperator, and opennn::EmbeddingLookupOperator.
◆ link_gradients()
|
inlinevirtual |
◆ link_parameter_scales()
|
inlinevirtual |
◆ link_parameters()
|
inlinevirtual |
Reimplemented in opennn::BatchNormalizationOperator, opennn::ConvolutionOperator, and opennn::GroupedQueryAttentionOperator.
◆ link_slots()
|
inline |
◆ link_states()
|
inlinevirtual |
Reimplemented in opennn::BatchNormalizationOperator, and opennn::EmbeddingLookupOperator.
◆ load_state_from_JSON()
|
inlinevirtual |
Reimplemented in opennn::BatchNormalizationOperator, and opennn::EmbeddingLookupOperator.
◆ parameter_quantization()
|
inlinevirtual |
◆ parameter_slots()
|
inlinevirtual |
◆ parameter_specs()
|
inlinevirtual |
◆ set_parameters_glorot()
|
inlinevirtual |
◆ set_parameters_pytorch()
|
inlinevirtual |
Reimplemented in opennn::CombinationOperator, opennn::LSTMOperator, and opennn::RecurrentOperator.
◆ set_parameters_random()
|
inlinevirtual |
◆ set_weights_dtype()
|
inlinevirtual |
◆ state_specs()
|
inlinevirtual |
Reimplemented in opennn::BatchNormalizationOperator, and opennn::EmbeddingLookupOperator.
◆ to_JSON()
|
inlinevirtual |
Member Data Documentation
◆ compute_dtype
| Type opennn::Operator::compute_dtype = Type::FP32 |
◆ input_delta_slots
| vector<size_t> opennn::Operator::input_delta_slots = {1} |
◆ input_slots
| vector<size_t> opennn::Operator::input_slots = {0} |
◆ output_delta_slots
| vector<size_t> opennn::Operator::output_delta_slots = {0} |
◆ output_slots
| vector<size_t> opennn::Operator::output_slots = {1} |
◆ weights_dtype
| Type opennn::Operator::weights_dtype = Type::FP32 |