Skip to content

tenzr::optim::Optimizer

Binds a parameter set to a gradient transformation and applies update steps.

#include <optimizer.h>

Public Functions

Name
Optimizer(std::unordered_map< std::string, Tensor > params, std::shared_ptr< GradientTransformation > transform)
Optimizer(nn::Module & module, std::shared_ptr< GradientTransformation > transform)
void Step(const std::unordered_map< std::string, Tensor > & grads)
uint64_t StepCount() const
const OptState & State() const
OptState & State()
const std::unordered_map< std::string, Tensor > & Params() const

Public Functions Documentation

function Optimizer

Optimizer(
    std::unordered_map< std::string, Tensor > params,
    std::shared_ptr< GradientTransformation > transform
)

Parameters:

  • params Named parameters to optimize.
  • transform Gradient transformation; must not be null.

Construct an optimizer over an explicit parameter map and initialize its state.

function Optimizer

explicit Optimizer(
    nn::Module & module,
    std::shared_ptr< GradientTransformation > transform
)

Parameters:

  • module Module whose parameters are optimized.
  • transform Gradient transformation; must not be null.

Construct an optimizer over a module's trainable parameters and initialize its state.

function Step

void Step(
    const std::unordered_map< std::string, Tensor > & grads
)

Parameters:

  • grads Gradients keyed by parameter name.
  • grads Named gradients keyed by parameter name.

Apply one optimization step. Apply one gradient update to every parameter present in grads.

function StepCount

inline uint64_t StepCount() const

Return: Number of update steps taken.

function State

inline const OptState & State() const

Return: Const reference to the optimizer state.

function State

inline OptState & State()

Return: Mutable reference to the optimizer state.

function Params

inline const std::unordered_map< std::string, Tensor > & Params() const

Return: Const reference to the parameter map.