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

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

Inheritance diagram for opennn::C2PSAOperator:
opennn::Operator

Public Types

enum  Slot {
  Input , Split , Query , Key ,
  AttentionWeights , Value , Concatenated , ForwardScratch ,
  Output
}
 

Public Member Functions

void set (Index new_h, Index new_w, Index new_channels)
 
vector< TensorSpec > parameter_specs () const override
 
vector< ParameterSlot > parameter_slots () override
 
void set_parameters_random () override
 
void set_parameters_glorot () override
 
void forward_propagate (ForwardPropagation &, size_t, ForwardPropagationMode) override
 
void back_propagate (ForwardPropagation &, BackPropagation &, size_t) const override
 
- Public Member Functions inherited from opennn::Operator
virtual ~Operator ()=default
 
virtual vector< TensorSpec > state_specs () const
 
virtual vector< SlotQuantization > parameter_quantization () const
 
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_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 h = 0
 
Index w = 0
 
Index channels = 0
 
TensorView Wq
 
TensorView Wk
 
TensorView Wv
 
TensorView Wout
 
TensorView dWq
 
TensorView dWk
 
TensorView dWv
 
TensorView dWout
 
optional< size_t > forward_scratch_slot
 
optional< size_t > backward_scratch_slot
 
- 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

◆ Slot

Enumerator
Input 
Split 
Query 
Key 
AttentionWeights 
Value 
Concatenated 
ForwardScratch 
Output 

Member Function Documentation

◆ back_propagate()

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

Reimplemented from opennn::Operator.

◆ forward_propagate()

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

Reimplemented from opennn::Operator.

◆ parameter_slots()

vector< ParameterSlot > opennn::C2PSAOperator::parameter_slots ( )
overridevirtual

Reimplemented from opennn::Operator.

◆ parameter_specs()

vector< TensorSpec > opennn::C2PSAOperator::parameter_specs ( ) const
overridevirtual

Reimplemented from opennn::Operator.

◆ set()

void opennn::C2PSAOperator::set ( Index new_h,
Index new_w,
Index new_channels )

◆ set_parameters_glorot()

void opennn::C2PSAOperator::set_parameters_glorot ( )
overridevirtual

Reimplemented from opennn::Operator.

◆ set_parameters_random()

void opennn::C2PSAOperator::set_parameters_random ( )
inlineoverridevirtual

Reimplemented from opennn::Operator.

Member Data Documentation

◆ backward_scratch_slot

optional<size_t> opennn::C2PSAOperator::backward_scratch_slot

◆ channels

Index opennn::C2PSAOperator::channels = 0

◆ dWk

TensorView opennn::C2PSAOperator::dWk

◆ dWout

TensorView opennn::C2PSAOperator::dWout

◆ dWq

TensorView opennn::C2PSAOperator::dWq

◆ dWv

TensorView opennn::C2PSAOperator::dWv

◆ forward_scratch_slot

optional<size_t> opennn::C2PSAOperator::forward_scratch_slot

◆ h

Index opennn::C2PSAOperator::h = 0

◆ w

Index opennn::C2PSAOperator::w = 0

◆ Wk

TensorView opennn::C2PSAOperator::Wk

◆ Wout

TensorView opennn::C2PSAOperator::Wout

◆ Wq

TensorView opennn::C2PSAOperator::Wq

◆ Wv

TensorView opennn::C2PSAOperator::Wv