OpenNN
Open-source neural networks library
Loading...
Searching...
No Matches
opennn::SimpleResNet Class Reference

Factory residual neural network with a configurable number of blocks per stage. More...

#include <standard_networks.h>

Inheritance diagram for opennn::SimpleResNet:
[legend]

Public Member Functions

 SimpleResNet (const Shape &input_shape, const vector< Index > &blocks_per_stage, const Shape &initial_filters, const Shape &output_shape)
 Builds a residual network with the given input shape, per-stage block counts and output shape.
 
- Public Member Functions inherited from opennn::NeuralNetwork
 NeuralNetwork ()
 Constructs an empty neural network.
 
virtual ~NeuralNetwork ()=default
 
 NeuralNetwork (const filesystem::path &)
 Constructs a neural network and loads its definition from a JSON file.
 
void add_layer (unique_ptr< Layer >, const vector< Index > &={})
 Appends a layer to the network.
 
const Configuration::Resolvedget_config () const
 
bool is_gpu () const
 
bool is_cpu () const
 
Type get_training_type () const
 
Type get_inference_type () const
 
vector< vector< TensorSpec > > get_parameter_specs () const
 Returns the tensor specs of trainable parameters for every layer.
 
vector< vector< TensorSpec > > get_state_specs () const
 Returns the tensor specs of persistent layer state (e.g. running statistics).
 
vector< vector< TensorSpec > > get_forward_specs (Index b) const
 Returns the tensor specs of the forward-propagation workspace for each layer.
 
vector< vector< TensorSpec > > get_backward_specs (Index b) const
 Returns the tensor specs of the back-propagation workspace for each layer.
 
Index get_states_size () const
 Returns the total byte size required to hold all persistent layer states.
 
void compile ()
 Allocates buffers, resolves devices, and wires layer/operator views; call once after all layers are added.
 
bool has (const string &) const
 Returns whether the network contains a layer with the given label.
 
bool has (LayerType) const
 Returns whether the network contains at least one layer of the given type.
 
bool is_empty () const
 
float * get_parameters_data ()
 
const float * get_parameters_data () const
 
Index get_parameters_size () const
 
const vector< Variable > & get_input_variables () const
 
vector< string > get_input_feature_names () const
 Returns the flat list of input feature names (expanding categorical variables).
 
const vector< Variable > & get_output_variables () const
 
vector< string > get_output_feature_names () const
 Returns the flat list of output feature names (expanding categorical variables).
 
const vector< unique_ptr< Layer > > & get_layers () const
 
const unique_ptr< Layer > & get_layer (const Index i) const
 
const unique_ptr< Layer > & get_layer (const string &) const
 Returns the layer with the given label.
 
Index get_layer_index (const string &) const
 Returns the index of the layer with the given label, or -1 if not found.
 
const vector< vector< Index > > & get_source_layers () const
 
vector< vector< Index > > get_consumer_layers () const
 Returns the inverse adjacency: for each layer, the indices of layers that consume its output.
 
Layerget_first (const string &)
 Returns the first layer matching the given label, or nullptr if not found.
 
Layerget_first (LayerType)
 Returns the first layer of the given type, or nullptr if not found.
 
const Layerget_first (const string &) const
 Returns the first layer matching the given label, or nullptr if not found.
 
const Layerget_first (LayerType) const
 Returns the first layer of the given type, or nullptr if not found.
 
void set_source_layers (const vector< vector< Index > > &new_source_layers)
 Replaces the layer connectivity graph.
 
void set_source_layers (const Index layer_index, const vector< Index > &new_sources)
 Replaces the source layers for one specific layer.
 
void set_source_layers (const string &, const vector< string > &)
 Sets the source layers of a layer using labels for identification.
 
void set_source_layers (const string &, initializer_list< string >)
 Sets the source layers of a layer using labels for identification.
 
void set_source_layers (const string &, const string &)
 Convenience overload for a single source layer.
 
void set_input_variables (const vector< Variable > &new_input_variables)
 
void set_output_variables (const vector< Variable > &new_output_variables)
 
void set_input_names (const vector< string > &)
 Sets the names of every input feature.
 
void set_output_names (const vector< string > &)
 Sets the names of every output feature.
 
void set_input_shape (const Shape &)
 Sets the shape of the input of the first layer and propagates it through the graph.
 
void clear ()
 Removes all layers and resets the network to an empty state.
 
Index get_layers_number () const
 
Index get_layers_number (const string &) const
 Returns the number of layers whose label contains the given substring.
 
Index get_layers_number (LayerType) const
 Returns the number of layers of the given type.
 
Index get_first_trainable_layer_index () const
 Returns the index of the first trainable layer (cached).
 
Index get_last_trainable_layer_index () const
 Returns the index of the last trainable layer (cached).
 
Index get_inputs_number () const
 Returns the number of input features expected by the first layer.
 
Index get_outputs_number () const
 Returns the number of output features produced by the last layer.
 
Shape get_input_shape () const
 Returns the shape of the input of the first layer.
 
Shape get_output_shape () const
 Returns the shape of the output of the last layer.
 
ActivationOp::Function get_output_activation () const
 Returns the activation function of the output layer.
 
Index get_parameters_number () const
 Returns the total number of trainable parameters across all layers.
 
void set_parameters (const VectorR &new_parameters)
 Copies the contents of new_parameters into the network's parameter buffer.
 
void set_parameters_random ()
 Initializes every parameter with random values.
 
void set_parameters_glorot ()
 Initializes every parameter using Glorot (Xavier) initialization.
 
void link_parameters ()
 Wires the contiguous parameter buffer to per-layer / per-operator views.
 
void link_states ()
 Wires the contiguous state buffer to per-layer / per-operator views.
 
MatrixR calculate_outputs (const vector< TensorView > &)
 Computes outputs for the given input tensor views.
 
MatrixR calculate_outputs (const MatrixR &)
 Computes outputs for a 2D input matrix.
 
MatrixR calculate_outputs (const Tensor3 &)
 Computes outputs for a 3D input tensor.
 
MatrixR calculate_outputs (const Tensor4 &)
 Computes outputs for a 4D input tensor.
 
MatrixR calculate_directional_inputs (const Index, const VectorR &, float, float, Index=101) const
 Generates samples by sweeping one input dimension across a range while keeping the others fixed.
 
Tensor3 calculate_outputs (const Tensor3 &, const Tensor3 &)
 Computes outputs for an encoder/decoder model.
 
Index calculate_image_output (const filesystem::path &)
 Reads an image file and returns the predicted class index.
 
MatrixR calculate_text_outputs (const Tensor< string, 1 > &)
 Tokenizes the given strings and returns the network's outputs.
 
void from_JSON (const JsonDocument &)
 Restores the network architecture and parameters from a JSON document.
 
void to_JSON (JsonWriter &) const
 Serializes the network architecture and parameters to a JSON writer.
 
void save (const filesystem::path &) const
 Saves the full network (architecture + parameters) to a JSON file.
 
void save_parameters (const filesystem::path &) const
 Saves only the parameter values to a JSON file.
 
void save_parameters_binary (const filesystem::path &) const
 Saves only the parameter values to a binary file.
 
void load (const filesystem::path &)
 Loads the full network (architecture + parameters) from a JSON file.
 
void load_parameters_binary (const filesystem::path &)
 Loads parameter values from a binary file produced by save_parameters_binary().
 
vector< string > get_names_string () const
 Returns the labels of all layers as a vector of strings.
 
void save_outputs (MatrixR &, const filesystem::path &)
 Writes the output matrix to a CSV file.
 
void save_outputs (Tensor3 &, const filesystem::path &)
 Writes the 3D output tensor to a CSV file.
 
void forward_propagate (const vector< TensorView > &, ForwardPropagation &, bool=false) const
 Runs a forward pass over all layers.
 
void forward_propagate (const vector< TensorView > &, ForwardPropagation &, bool is_training, Index first_layer_index, Index last_layer_index) const
 Runs a forward pass over a contiguous sub-range of layers.
 
void forward_propagate (const vector< TensorView > &, const VectorR &, ForwardPropagation &)
 Runs a forward pass after temporarily overwriting the parameter buffer.
 
vector< string > get_layer_labels () const
 Returns the labels of all layers in order.
 

Additional Inherited Members

- Protected Attributes inherited from opennn::NeuralNetwork
vector< Variableinput_variables
 
vector< Variableoutput_variables
 
vector< unique_ptr< Layer > > layers
 
vector< vector< Index > > source_layers
 
Buffer parameters
 
Buffer parameters_bf16 {Device::CUDA}
 
Buffer states
 
Configuration::Resolved config
 
Index first_trainable_cache_ = -1
 
Index last_trainable_cache_ = -1
 

Detailed Description

Factory residual neural network with a configurable number of blocks per stage.

Constructor & Destructor Documentation

◆ SimpleResNet()

opennn::SimpleResNet::SimpleResNet ( const Shape & input_shape,
const vector< Index > & blocks_per_stage,
const Shape & initial_filters,
const Shape & output_shape )

Builds a residual network with the given input shape, per-stage block counts and output shape.

Parameters
input_shapeShape of the input tensor.
blocks_per_stageNumber of residual blocks at each stage.
initial_filtersFilter dimensions of the initial convolution.
output_shapeShape of the output tensor.