docs/cpp/source/api/nn/utilities.md
Additional utilities for building neural networks: parameter initialization, module cloning, type-erased containers, padding layers, and vision utilities.
The torch::nn::init namespace provides functions for initializing module parameters:
#include <torch/nn/init.h>
// Xavier/Glorot initialization
torch::nn::init::xavier_uniform_(linear->weight);
torch::nn::init::xavier_normal_(linear->weight);
// Kaiming/He initialization
torch::nn::init::kaiming_uniform_(conv->weight, /*a=*/0, torch::kFanIn, torch::kReLU);
torch::nn::init::kaiming_normal_(conv->weight);
// Other initializations
torch::nn::init::zeros_(linear->bias);
torch::nn::init::ones_(bn->weight);
torch::nn::init::constant_(linear->bias, 0.1);
torch::nn::init::normal_(linear->weight, /*mean=*/0, /*std=*/0.01);
torch::nn::init::uniform_(linear->weight, /*a=*/-0.1, /*b=*/0.1);
torch::nn::init::orthogonal_(rnn->weight_hh);
All torch::nn modules inherit from Cloneable, enabling deep copies:
auto model = torch::nn::Linear(10, 5);
auto model_copy = std::dynamic_pointer_cast<torch::nn::LinearImpl>(model->clone());
AnyModule provides type-erased storage for any module, allowing you to
store heterogeneous modules in a single container.
:members:
:undoc-members:
Example:
torch::nn::AnyModule any_module(torch::nn::Linear(10, 5));
auto output = any_module.forward(input);
Wraps a function or callable as a module, useful for inserting arbitrary
functions into a Sequential container.
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
Holds the data and list of `batch_sizes` of a packed sequence.
All RNN modules accept packed sequences as inputs.
Returns the packed tensor containing all sequence elements.
Returns a 1D tensor of batch sizes at each time step.
Returns indices used to sort sequences by length (descending).
Returns indices to restore the original sequence order.
Moves the packed sequence to the specified device.
See also: torch::nn::utils::rnn::pack_padded_sequence and
torch::nn::utils::rnn::pad_packed_sequence.
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members:
:members:
:undoc-members: