OpenNN
Open-source neural networks library
Loading...
Searching...
No Matches
opennn::Scaling Class Referencefinal

Input scaling layer that normalizes features using per-variable descriptive statistics. More...

#include <scaling_layer.h>

Inheritance diagram for opennn::Scaling:
[legend]

Public Member Functions

 Scaling (const Shape &={})
 Constructs a scaling layer for the given input shape.
 
Shape get_output_shape () const override
 Returns the output shape; subclasses must implement this to expose their geometry.
 
const vector< Descriptives > & get_descriptives () const
 
const vector< ScalerMethod > & get_scalers () const
 
VectorR get_minimums () const
 Returns the per-variable minimum values from the stored descriptive statistics.
 
VectorR get_maximums () const
 Returns the per-variable maximum values from the stored descriptive statistics.
 
VectorR get_means () const
 Returns the per-variable means from the stored descriptive statistics.
 
VectorR get_standard_deviations () const
 Returns the per-variable standard deviations from the stored descriptive statistics.
 
float get_min_range () const
 
float get_max_range () const
 
void set (const Shape &={})
 Reconfigures the layer with a new input shape, resetting descriptives and scalers.
 
void set_input_shape (const Shape &) override
 Sets the input shape; subclasses override to derive dependent dimensions.
 
void set_descriptives (const vector< Descriptives > &)
 Sets the descriptive statistics (min, max, mean, stddev) used for scaling each variable.
 
void set_min_max_range (float min, float max)
 Sets the target output range used by min-max scaling methods.
 
void set_scalers (const vector< string > &)
 Sets the scaling method for each input variable from a vector of method names.
 
void set_scalers (const string &)
 Sets the same scaling method for all input variables from its name.
 
float * link_states (float *) override
 Binds the persistent-state region of the shared buffer to operator views.
 
void read_JSON_body (const Json *) override
 Subclass hook reading the body section of the layer's JSON node.
 
void write_JSON_body (JsonWriter &) const override
 Subclass hook writing the body section of the layer's JSON node.
 
string write_expression (const vector< string > &input_names, const vector< string > &output_names) const override
 Returns a human-readable mathematical expression for this layer (empty by default).
 
- Public Member Functions inherited from opennn::Layer
virtual ~Layer ()=default
 
const string & get_label () const
 
const string & get_name () const
 
LayerType get_type () const
 
virtual void set_output_shape (const Shape &)
 Sets the output shape; subclasses override when the output is user-configurable.
 
void set_label (string new_label)
 
Index get_parameters_number () const
 Returns the total number of trainable parameters owned by this layer.
 
const vector< Operator * > & get_operators () const
 
virtual vector< TensorSpecget_parameter_specs () const
 Returns the tensor specs of trainable parameters; subclasses override.
 
virtual vector< TensorSpecget_state_specs () const
 Returns the tensor specs of persistent state (e.g. running mean/variance).
 
virtual vector< TensorSpecget_forward_specs (Index batch_size) const
 Returns the tensor specs of the forward workspace; defaults to a single output tensor.
 
virtual vector< TensorSpecget_backward_specs (Index batch_size) const
 Returns the tensor specs of the backward workspace; empty for non-trainable layers.
 
virtual Shape get_input_shape () const
 Returns the input shape stored by the layer.
 
virtual ActivationOp::Function get_output_activation () const
 Returns the layer's output activation (Identity for most layers; overridden by Dense/Bounding).
 
Index get_inputs_number () const
 
Index get_outputs_number () const
 
virtual void forward_propagate (ForwardPropagation &fp, size_t layer, bool is_training) noexcept
 Runs the forward pass by chaining the layer's operators in order.
 
virtual void back_propagate (ForwardPropagation &fp, BackPropagation &bp, size_t i) const noexcept
 Runs the backward pass by chaining the layer's operators in reverse order.
 
virtual void from_JSON (const JsonDocument &document)
 Restores layer configuration and parameters from a JSON document.
 
virtual void load_state_from_JSON (const JsonDocument &document)
 Restores persistent state (e.g. running statistics) from a JSON document.
 
virtual void to_JSON (JsonWriter &writer) const
 Serializes layer configuration and parameters to a JSON writer.
 
virtual void print () const
 Prints a human-readable summary of the layer to standard output.
 
bool get_is_trainable () const
 
Type get_compute_dtype () const
 
void set_compute_dtype (Type new_compute_dtype)
 Sets the compute dtype and notifies subclasses via on_compute_dtype_changed().
 
virtual void on_compute_dtype_changed ()
 Subclass hook invoked when the compute dtype changes; default is no-op.
 
float * link_gradients (float *pointer, vector< TensorView > &gradient_views)
 Binds the gradient slice of the shared buffer to operator gradient views.
 
vector< TensorView > & get_parameter_views ()
 
const vector< TensorView > & get_parameter_views () const
 
void redistribute_parameters_to_operators ()
 Re-binds operator parameter views after the parameter buffer has been resized or moved.
 

Additional Inherited Members

- Protected Types inherited from opennn::Layer
enum  Forward { Input , Output }
 
enum  Backward { OutputDelta , InputDelta }
 
- Protected Member Functions inherited from opennn::Layer
 Layer ()=default
 
 Layer (LayerType t, bool trainable=true)
 
float * link_views_to_operators (vector< TensorView > &views, float *pointer, vector< TensorSpec >(Operator::*specs_fn)() const, void(Operator::*link_fn)(span< const TensorView >))
 
- Protected Attributes inherited from opennn::Layer
string label = "my_layer"
 
LayerType layer_type = LayerType::Dense
 
bool is_trainable = true
 
Shape input_shape
 
Type compute_dtype = Type::FP32
 
vector< TensorViewparameters
 
vector< TensorViewstates
 
vector< Operator * > operators
 

Detailed Description

Input scaling layer that normalizes features using per-variable descriptive statistics.

Constructor & Destructor Documentation

◆ Scaling()

opennn::Scaling::Scaling ( const Shape & = {})

Constructs a scaling layer for the given input shape.

Member Function Documentation

◆ get_descriptives()

const vector< Descriptives > & opennn::Scaling::get_descriptives ( ) const
inline

◆ get_max_range()

float opennn::Scaling::get_max_range ( ) const
inline

◆ get_maximums()

VectorR opennn::Scaling::get_maximums ( ) const

Returns the per-variable maximum values from the stored descriptive statistics.

◆ get_means()

VectorR opennn::Scaling::get_means ( ) const

Returns the per-variable means from the stored descriptive statistics.

◆ get_min_range()

float opennn::Scaling::get_min_range ( ) const
inline

◆ get_minimums()

VectorR opennn::Scaling::get_minimums ( ) const

Returns the per-variable minimum values from the stored descriptive statistics.

◆ get_output_shape()

Shape opennn::Scaling::get_output_shape ( ) const
inlineoverridevirtual

Returns the output shape; subclasses must implement this to expose their geometry.

Implements opennn::Layer.

◆ get_scalers()

const vector< ScalerMethod > & opennn::Scaling::get_scalers ( ) const
inline

◆ get_standard_deviations()

VectorR opennn::Scaling::get_standard_deviations ( ) const

Returns the per-variable standard deviations from the stored descriptive statistics.

◆ link_states()

float * opennn::Scaling::link_states ( float * )
overridevirtual

Binds the persistent-state region of the shared buffer to operator views.

Parameters
pointerStart of the layer's slice in the shared state buffer.
Returns
Pointer advanced past this layer's state region.

Reimplemented from opennn::Layer.

◆ read_JSON_body()

void opennn::Scaling::read_JSON_body ( const Json * )
overridevirtual

Subclass hook reading the body section of the layer's JSON node.

Reimplemented from opennn::Layer.

◆ set()

void opennn::Scaling::set ( const Shape & = {})

Reconfigures the layer with a new input shape, resetting descriptives and scalers.

◆ set_descriptives()

void opennn::Scaling::set_descriptives ( const vector< Descriptives > & )

Sets the descriptive statistics (min, max, mean, stddev) used for scaling each variable.

◆ set_input_shape()

void opennn::Scaling::set_input_shape ( const Shape & )
overridevirtual

Sets the input shape; subclasses override to derive dependent dimensions.

Reimplemented from opennn::Layer.

◆ set_min_max_range()

void opennn::Scaling::set_min_max_range ( float min,
float max )

Sets the target output range used by min-max scaling methods.

◆ set_scalers() [1/2]

void opennn::Scaling::set_scalers ( const string & )

Sets the same scaling method for all input variables from its name.

◆ set_scalers() [2/2]

void opennn::Scaling::set_scalers ( const vector< string > & )

Sets the scaling method for each input variable from a vector of method names.

◆ write_expression()

string opennn::Scaling::write_expression ( const vector< string > & input_names,
const vector< string > & output_names ) const
overridevirtual

Returns a human-readable mathematical expression for this layer (empty by default).

Parameters
input_namesNames assigned to the inputs.
output_namesNames assigned to the outputs.

Reimplemented from opennn::Layer.

◆ write_JSON_body()

void opennn::Scaling::write_JSON_body ( JsonWriter & ) const
overridevirtual

Subclass hook writing the body section of the layer's JSON node.

Reimplemented from opennn::Layer.