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

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

Inheritance diagram for opennn::ConvolutionOperator:
opennn::Operator

Public Member Functions

void apply_gpu_folded (const TensorView &input, const TensorView &folded_weights, const TensorView &folded_bias, bool relu, TensorView &output, const TensorView *residual=nullptr) const
 
vector< TensorSpec > parameter_specs () const override
 
vector< SlotQuantization > parameter_quantization () const override
 
vector< ParameterSlot > parameter_slots () override
 
void link_parameters (span< const TensorView >) override
 
void link_parameter_scales (span< const TensorView >) override
 
void set_parameters_random () override
 
void set_parameters_glorot () override
 
 ~ConvolutionOperator () override
 
 ConvolutionOperator ()
 
 ConvolutionOperator (const ConvolutionOperator &)=delete
 
ConvolutionOperator & operator= (const ConvolutionOperator &)=delete
 
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 void link_gradients (span< const TensorView > views)
 
virtual void link_states (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 input_height = 0
 
Index input_width = 0
 
Index kernels_number = 0
 
Index kernel_height = 0
 
Index kernel_width = 0
 
Index kernel_channels = 0
 
Index row_stride = 1
 
Index column_stride = 1
 
Index padding_height = 0
 
Index padding_width = 0
 
bool use_bias = true
 
TensorView weights
 
TensorView bias
 
TensorView weight_scale
 
TensorView weight_gradient
 
TensorView bias_gradient
 
bool fuse_relu = false
 
bool weights_relinked = true
 
unique_ptr< ConvGraphCache > conv_graph_cache
 
- 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}
 

Constructor & Destructor Documentation

◆ ~ConvolutionOperator()

opennn::ConvolutionOperator::~ConvolutionOperator ( )
override

◆ ConvolutionOperator() [1/2]

opennn::ConvolutionOperator::ConvolutionOperator ( )

◆ ConvolutionOperator() [2/2]

opennn::ConvolutionOperator::ConvolutionOperator ( const ConvolutionOperator & )
delete

Member Function Documentation

◆ apply_gpu_folded()

void opennn::ConvolutionOperator::apply_gpu_folded ( const TensorView & input,
const TensorView & folded_weights,
const TensorView & folded_bias,
bool relu,
TensorView & output,
const TensorView * residual = nullptr ) const

◆ back_propagate()

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

Reimplemented from opennn::Operator.

◆ forward_propagate()

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

Reimplemented from opennn::Operator.

◆ link_parameter_scales()

void opennn::ConvolutionOperator::link_parameter_scales ( span< const TensorView > )
overridevirtual

Reimplemented from opennn::Operator.

◆ link_parameters()

void opennn::ConvolutionOperator::link_parameters ( span< const TensorView > )
overridevirtual

Reimplemented from opennn::Operator.

◆ operator=()

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

◆ parameter_quantization()

vector< SlotQuantization > opennn::ConvolutionOperator::parameter_quantization ( ) const
overridevirtual

Reimplemented from opennn::Operator.

◆ parameter_slots()

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

Reimplemented from opennn::Operator.

◆ parameter_specs()

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

Reimplemented from opennn::Operator.

◆ set_parameters_glorot()

void opennn::ConvolutionOperator::set_parameters_glorot ( )
overridevirtual

Reimplemented from opennn::Operator.

◆ set_parameters_random()

void opennn::ConvolutionOperator::set_parameters_random ( )
overridevirtual

Reimplemented from opennn::Operator.

Member Data Documentation

◆ bias

TensorView opennn::ConvolutionOperator::bias

◆ bias_gradient

TensorView opennn::ConvolutionOperator::bias_gradient

◆ column_stride

Index opennn::ConvolutionOperator::column_stride = 1

◆ conv_graph_cache

unique_ptr<ConvGraphCache> opennn::ConvolutionOperator::conv_graph_cache

◆ fuse_relu

bool opennn::ConvolutionOperator::fuse_relu = false

◆ input_height

Index opennn::ConvolutionOperator::input_height = 0

◆ input_width

Index opennn::ConvolutionOperator::input_width = 0

◆ kernel_channels

Index opennn::ConvolutionOperator::kernel_channels = 0

◆ kernel_height

Index opennn::ConvolutionOperator::kernel_height = 0

◆ kernel_width

Index opennn::ConvolutionOperator::kernel_width = 0

◆ kernels_number

Index opennn::ConvolutionOperator::kernels_number = 0

◆ padding_height

Index opennn::ConvolutionOperator::padding_height = 0

◆ padding_width

Index opennn::ConvolutionOperator::padding_width = 0

◆ row_stride

Index opennn::ConvolutionOperator::row_stride = 1

◆ use_bias

bool opennn::ConvolutionOperator::use_bias = true

◆ weight_gradient

TensorView opennn::ConvolutionOperator::weight_gradient

◆ weight_scale

TensorView opennn::ConvolutionOperator::weight_scale

◆ weights

TensorView opennn::ConvolutionOperator::weights

◆ weights_relinked

bool opennn::ConvolutionOperator::weights_relinked = true