grilly.optim.natural_gradient
Natural Gradient Optimizer
Uses: fisher-natural-gradient.glsl
Implements natural gradient descent using Fisher information matrix.
Classes
|
|
|
Natural Gradient optimizer using Fisher information matrix. |
|
Base class for all optimizers. |
- class grilly.optim.natural_gradient.NaturalGradient(params, lr=0.001, fisher_momentum=0.9, use_gpu=True)[source]
Bases:
OptimizerNatural Gradient optimizer using Fisher information matrix.
Uses: fisher-natural-gradient.glsl
Implements natural gradient descent: - F = Fisher information matrix - param = param - lr * F^(-1) * grad
Reference: grilly/backend/learning.py natural_gradient
Initialize Natural Gradient optimizer.
- Parameters
params (Iterator[numpy.ndarray]) – Iterator of parameter arrays to optimize
lr (float) – Learning rate (default: 1e-3)
fisher_momentum (float) – Momentum for Fisher information estimate (default: 0.9)
use_gpu (bool) – Whether to use GPU acceleration (default: True)
- __init__(params, lr=0.001, fisher_momentum=0.9, use_gpu=True)[source]
Initialize Natural Gradient optimizer.
- Parameters
params (Iterator[numpy.ndarray]) – Iterator of parameter arrays to optimize
lr (float) – Learning rate (default: 1e-3)
fisher_momentum (float) – Momentum for Fisher information estimate (default: 0.9)
use_gpu (bool) – Whether to use GPU acceleration (default: True)
Dependencies:
Nonedetected from callable globals.Variables:
params(collections.abc.Iterator[numpy.ndarray], required);lr(float, optional, default0.001);fisher_momentum(float, optional, default0.9);use_gpu(bool, optional, defaultTrue).Usage Example
import numpy as np from grilly.optim.natural_gradient import NaturalGradient instance = NaturalGradient(...) result = instance.__init__(params=np.zeros(1, dtype=np.float32), lr=0.001, fisher_momentum=0.9, use_gpu=True)
- _get_backend()[source]
Get or create backend instance
Dependencies:
Nonedetected from callable globals.Variables: This callable does not take explicit input variables.
Usage Example
from grilly.optim.natural_gradient import NaturalGradient instance = NaturalGradient(...) result = instance._get_backend()
- step(closure=None)[source]
Perform a single optimization step.
- Parameters
closure – Optional closure that reevaluates the model and returns loss
Dependencies:
numpy.Variables:
closure(Any, optional, defaultNone).Usage Example
from grilly.optim.natural_gradient import NaturalGradient instance = NaturalGradient(...) result = instance.step(closure=None)
- load_state_dict(state_dict)
Load optimizer state from state_dict.
- Parameters
state_dict (dict[str, Any]) – Dictionary containing optimizer state
Dependencies:
Nonedetected from callable globals.Variables:
state_dict(dict[str, typing.Any], required).Usage Example
from grilly.optim.base import Optimizer instance = Optimizer(...) result = instance.load_state_dict(state_dict='example')
- state_dict()
Return the state of the optimizer as a dict.
- Returns
Dictionary containing optimizer state
- Return type
dict[str, Any]
Dependencies:
Nonedetected from callable globals.Variables: This callable does not take explicit input variables.
Usage Example
from grilly.optim.base import Optimizer instance = Optimizer(...) result = instance.state_dict()
- zero_grad()
Clear gradients for all parameters.
Note: In this implementation, gradients are expected to be stored in a separate structure (e.g., in the model’s backward pass). This method is provided for API compatibility.
Dependencies:
Nonedetected from callable globals.Variables: This callable does not take explicit input variables.
Usage Example
from grilly.optim.base import Optimizer instance = Optimizer(...) result = instance.zero_grad()