|
OpenNN
Open-source neural networks library
|
Per-output inverse normalization layer. More...
#include <unscaling_layer.h>
Public Member Functions | |
| Unscaling (const Shape &input_shape={0}, const string &label="unscaling_layer") | |
| Constructs an Unscaling layer. | |
| Shape | get_input_shape () const override |
| Returns the per-sample input shape. | |
| Shape | get_output_shape () const override |
| Returns the per-sample output shape (same as input). | |
| VectorR | get_minimums () const |
| Returns the per-output minimum statistics. | |
| VectorR | get_maximums () const |
| Returns the per-output maximum statistics. | |
| VectorR | get_means () const |
| Returns the per-output mean statistics. | |
| VectorR | get_standard_deviations () const |
| Returns the per-output standard-deviation statistics. | |
| const vector< ScalerMethod > & | get_scalers () const |
| Read-only access to the per-output scaler method list. | |
| float | get_min_range () const |
| Lower bound of the source range used by min-max unscalers. | |
| float | get_max_range () const |
| Upper bound of the source range used by min-max unscalers. | |
| vector< Operator * > | get_operators () override |
| Returns the single Unscale operator that implements this layer. | |
| void | set (Index outputs_number=0, const string &label="unscaling_layer") |
| Re-initializes the layer. | |
| void | set_input_shape (const Shape &) override |
| Updates the input shape and resizes the scaler vector. | |
| void | set_output_shape (const Shape &) override |
| Updates the output shape (kept equal to the input shape). | |
| void | set_descriptives (const vector< Descriptives > &) |
| Sets the per-output descriptive statistics used by the unscalers. | |
| void | set_min_max_range (float, float) |
| Sets the source range used by min-max unscalers. | |
| void | set_scalers (const vector< string > &) |
| Sets the unscaler method per output from a vector of names. | |
| void | set_scalers (const string &) |
| Sets the same unscaler method for every output. | |
| void | forward_propagate (ForwardPropagation &, size_t, bool) noexcept override |
| Forward pass: applies the inverse scaler to each output. | |
| void | print () const override |
| Prints the per-output scaler methods and descriptives to stdout. | |
| void | read_JSON_body (const Json *) override |
| Reads the layer-specific JSON body (descriptives, scaler methods, source range). | |
| void | write_JSON_body (JsonWriter &) const override |
| Writes the layer-specific JSON body (descriptives, scaler methods, source range). | |
Public Member Functions inherited from opennn::Layer | |
| virtual | ~Layer ()=default |
| Virtual destructor; subclasses are owned via unique_ptr<Layer>. | |
| const string & | get_label () const |
| Returns the user-assigned label of this layer. | |
| const string & | get_name () const |
| Returns the canonical type name of this layer. | |
| LayerType | get_type () const |
| Returns the LayerType enumerator for this layer. | |
| void | set_label (string new_label) |
| Sets the human-readable label of this layer. | |
| Index | get_parameters_number () const |
| Total number of trainable parameters in this layer. | |
| virtual vector< pair< Shape, Type > > | get_parameter_specs () const |
| Specifications of the trainable parameter tensors owned by this layer. | |
| virtual vector< pair< Shape, Type > > | get_state_specs () const |
| Specifications of the persistent state tensors of this layer. | |
| virtual vector< pair< Shape, Type > > | get_forward_specs (Index batch_size) const |
| Specifications of the forward intermediate buffers for one batch. | |
| virtual vector< pair< Shape, Type > > | get_backward_specs (Index batch_size) const |
| Specifications of the backward intermediate buffers for one batch. | |
| vector< Shape > | get_parameter_shapes () const |
| Shape-only view of get_parameter_specs(). | |
| vector< Shape > | get_state_shapes () const |
| Shape-only view of get_state_specs(). | |
| vector< Shape > | get_forward_shapes (Index b) const |
Shape-only view of get_forward_specs() for batch size b. | |
| vector< Shape > | get_backward_shapes (Index b) const |
Shape-only view of get_backward_specs() for batch size b. | |
| vector< Type > | get_parameter_dtypes () const |
| Dtype-only view of get_parameter_specs(). | |
| vector< Type > | get_forward_dtypes (Index b) const |
Dtype-only view of get_forward_specs() for batch size b. | |
| vector< Type > | get_backward_dtypes (Index b) const |
Dtype-only view of get_backward_specs() for batch size b. | |
| virtual Activation::Function | get_output_activation () const |
| Activation function fused at the end of this layer, if any. | |
| Index | get_inputs_number () const |
| Total number of scalar inputs per sample (product of input dims). | |
| Index | get_outputs_number () const |
| Total number of scalar outputs per sample (product of output dims). | |
| virtual void | back_propagate (ForwardPropagation &, BackPropagation &, size_t) const noexcept |
| Backward pass: propagates gradients through this layer. | |
| virtual void | from_JSON (const JsonDocument &document) |
| Loads the layer configuration (hyperparameters) from JSON. | |
| virtual void | load_state_from_JSON (const JsonDocument &document) |
| Loads parameter and state tensors from a JSON document. | |
| virtual void | to_JSON (JsonWriter &writer) const |
| Writes the layer configuration to JSON. | |
| bool | get_is_trainable () const |
| Whether this layer has trainable parameters. | |
| Type | get_compute_dtype () const |
| Numerical type used for forward/backward computation. | |
| void | set_compute_dtype (Type new_compute_dtype) |
| Sets the compute dtype and triggers on_compute_dtype_changed(). | |
| virtual void | on_compute_dtype_changed () |
| Hook invoked after set_compute_dtype() mutates the dtype. | |
| virtual float * | link_parameters (float *pointer) |
| Wires this layer's parameter TensorViews onto an external buffer. | |
| virtual float * | link_states (float *pointer) |
| Wires this layer's state TensorViews onto an external buffer. | |
| vector< TensorView > & | get_parameter_views () |
| Mutable access to this layer's parameter TensorViews. | |
| const vector< TensorView > & | get_parameter_views () const |
| Read-only access to this layer's parameter TensorViews. | |
| vector< TensorView > & | get_state_views () |
| Mutable access to this layer's state TensorViews. | |
| const vector< TensorView > & | get_state_views () const |
| Read-only access to this layer's state TensorViews. | |
| void | redistribute_parameters_to_operators () |
| Forwards the current parameter views down to each composing Operator. | |
| void | redistribute_parameter_gradients_to_operators (vector< TensorView > &gradient_views) |
| Forwards externally provided gradient views down to each Operator. | |
| void | redistribute_states_to_operators () |
| Forwards the current state views down to each composing Operator. | |
Additional Inherited Members | |
Protected Member Functions inherited from opennn::Layer | |
| Layer ()=default | |
| Default constructor; only invoked by subclasses. | |
| float * | link_views (float *pointer, const vector< Shape > &shapes, vector< TensorView > &views, const char *tag) const |
Builds views over a contiguous float buffer using shapes. | |
| void | distribute_to_operators (vector< TensorView > &views, void(Operator::*link)(const vector< TensorView > &), vector< pair< Shape, Type > >(Operator::*specs)() const) |
| Generic helper used by the redistribute_*_to_operators() routines. | |
Protected Attributes inherited from opennn::Layer | |
| string | label = "my_layer" |
| User-visible label for this layer instance (default "my_layer"). | |
| string | name = "layer" |
| Canonical type name set by the subclass (e.g. "dense"). | |
| LayerType | layer_type = LayerType::Dense |
| Layer type tag set by the subclass. | |
| bool | is_trainable = true |
| True if the layer has parameters that participate in training. | |
| bool | is_first_layer = false |
| True if this layer is the network's input layer. | |
| Type | compute_dtype = Type::FP32 |
| Numerical type used for forward and backward computation. | |
| vector< TensorView > | parameters |
| Parameter TensorViews bound to the network's parameter arena. | |
| vector< TensorView > | states |
| State TensorViews bound to the network's state arena. | |
| vector< unique_ptr< Layer > > | layers |
| Sub-layers, when this layer is itself a composite. | |
Per-output inverse normalization layer.
Mirror image of Scaling: applies the inverse of the configured scaler method to each output feature so that the network's predictions are returned in the original units. Holds one ScalerMethod per output and the corresponding descriptive statistics.
The layer has no trainable parameters.
| opennn::Unscaling::Unscaling | ( | const Shape & | input_shape = {0}, |
| const string & | label = "unscaling_layer" ) |
Constructs an Unscaling layer.
| input_shape | Per-sample input shape (also the output shape). |
| label | Human-readable label assigned to this layer. |
|
overridevirtualnoexcept |
Forward pass: applies the inverse scaler to each output.
Receives the ForwardPropagation buffer slice, this layer's index and the training flag.
Reimplemented from opennn::Layer.
|
overridevirtual |
Returns the per-sample input shape.
Implements opennn::Layer.
|
inline |
Upper bound of the source range used by min-max unscalers.
| VectorR opennn::Unscaling::get_maximums | ( | ) | const |
Returns the per-output maximum statistics.
| VectorR opennn::Unscaling::get_means | ( | ) | const |
Returns the per-output mean statistics.
|
inline |
Lower bound of the source range used by min-max unscalers.
| VectorR opennn::Unscaling::get_minimums | ( | ) | const |
Returns the per-output minimum statistics.
|
inlineoverridevirtual |
Returns the single Unscale operator that implements this layer.
Reimplemented from opennn::Layer.
|
overridevirtual |
Returns the per-sample output shape (same as input).
Implements opennn::Layer.
|
inline |
Read-only access to the per-output scaler method list.
| VectorR opennn::Unscaling::get_standard_deviations | ( | ) | const |
Returns the per-output standard-deviation statistics.
|
overridevirtual |
Prints the per-output scaler methods and descriptives to stdout.
Reimplemented from opennn::Layer.
|
overridevirtual |
Reads the layer-specific JSON body (descriptives, scaler methods, source range).
Reimplemented from opennn::Layer.
| void opennn::Unscaling::set | ( | Index | outputs_number = 0, |
| const string & | label = "unscaling_layer" ) |
Re-initializes the layer.
| outputs_number | Number of output features. |
| label | Human-readable label. |
| void opennn::Unscaling::set_descriptives | ( | const vector< Descriptives > & | ) |
Sets the per-output descriptive statistics used by the unscalers.
Receives a vector of Descriptives (minimum, maximum, mean, standard deviation) with one entry per output.
|
overridevirtual |
Updates the input shape and resizes the scaler vector.
Reimplemented from opennn::Layer.
| void opennn::Unscaling::set_min_max_range | ( | float | , |
| float | ) |
Sets the source range used by min-max unscalers.
Receives the lower bound followed by the upper bound (i.e. the range that the network produced and that should be inverted).
|
overridevirtual |
Updates the output shape (kept equal to the input shape).
Reimplemented from opennn::Layer.
| void opennn::Unscaling::set_scalers | ( | const string & | ) |
Sets the same unscaler method for every output.
Receives a single method name applied to all outputs.
| void opennn::Unscaling::set_scalers | ( | const vector< string > & | ) |
Sets the unscaler method per output from a vector of names.
Receives one method name per output; see ScalerMethod for the supported set.
|
overridevirtual |
Writes the layer-specific JSON body (descriptives, scaler methods, source range).
Reimplemented from opennn::Layer.