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

#include <opennn/network/operators/operator.h>

Inheritance diagram for opennn::Operator:
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::LSTMOperator opennn::LayerNormalizationOperator opennn::NonMaxSuppressionOperator opennn::Pool3dOperator opennn::PoolOperator opennn::RecurrentOperator opennn::ScaleOperator opennn::SwiGLUOperator opennn::TokenizerOperator opennn::UpsamplingOperator

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()

virtual opennn::Operator::~Operator ( )
virtualdefault

Member Function Documentation

◆ back_propagate()

◆ forward_propagate()

◆ from_JSON()

◆ get_input()

TensorView & opennn::Operator::get_input ( ForwardPropagation & forward_propagation,
size_t layer,
size_t slot_index = 0 ) const
inlinenoexcept

◆ get_input_delta()

TensorView & opennn::Operator::get_input_delta ( BackPropagation & back_propagation,
size_t layer,
size_t slot_index = 0 ) const
inlinenoexcept

◆ get_inputs()

vector< TensorView > & opennn::Operator::get_inputs ( ForwardPropagation & forward_propagation,
size_t layer ) const
inlinenoexcept

◆ get_output()

TensorView & opennn::Operator::get_output ( ForwardPropagation & forward_propagation,
size_t layer,
size_t slot_index = 0 ) const
inlinenoexcept

◆ get_output_delta()

TensorView & opennn::Operator::get_output_delta ( BackPropagation & back_propagation,
size_t layer,
size_t slot_index = 0 ) const
inlinenoexcept

◆ initialize_states()

virtual void opennn::Operator::initialize_states ( )
inlinevirtual

◆ link_gradients()

virtual void opennn::Operator::link_gradients ( span< const TensorView > views)
inlinevirtual

◆ link_parameter_scales()

virtual void opennn::Operator::link_parameter_scales ( span< const TensorView > )
inlinevirtual

◆ link_parameters()

virtual void opennn::Operator::link_parameters ( span< const TensorView > views)
inlinevirtual

◆ link_slots()

bool opennn::Operator::link_slots ( span< const TensorView > views,
TensorView *ParameterSlot::* member )
inline

◆ link_states()

virtual void opennn::Operator::link_states ( span< const TensorView > )
inlinevirtual

◆ load_state_from_JSON()

virtual void opennn::Operator::load_state_from_JSON ( const Json * )
inlinevirtual

◆ parameter_quantization()

virtual vector< SlotQuantization > opennn::Operator::parameter_quantization ( ) const
inlinevirtual

◆ parameter_slots()

◆ parameter_specs()

◆ set_parameters_glorot()

◆ set_parameters_pytorch()

virtual void opennn::Operator::set_parameters_pytorch ( )
inlinevirtual

◆ set_parameters_random()

◆ set_weights_dtype()

virtual void opennn::Operator::set_weights_dtype ( Type new_weights_dtype)
inlinevirtual

◆ state_specs()

virtual vector< TensorSpec > opennn::Operator::state_specs ( ) const
inlinevirtual

◆ to_JSON()

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