grilly.optim.adam
Adam Optimizer
Uses: adam-update.glsl, affect-adam.glsl
Classes
|
Adam optimizer using GPU-accelerated shaders. |
|
Affect-aware Adam optimizer. |
|
|
|
Base class for all optimizers. |
- class grilly.optim.adam.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0.0, use_gpu=True)[source]
Bases:
OptimizerAdam optimizer using GPU-accelerated shaders.
Uses: adam-update.glsl
Implements the Adam algorithm: - m = beta1 * m + (1 - beta1) * grad - v = beta2 * v + (1 - beta2) * grad^2 - m_hat = m / (1 - beta1^t) - v_hat = v / (1 - beta2^t) - param = param - lr * m_hat / (sqrt(v_hat) + eps)
Initialize Adam optimizer.
- Parameters
params (Iterator[numpy.ndarray]) – Iterator of parameter arrays to optimize
lr (float) – Learning rate (default: 1e-3)
betas (tuple) – Coefficients for computing running averages (default: (0.9, 0.999))
eps (float) – Term added to denominator for numerical stability (default: 1e-8)
weight_decay (float) – Weight decay (L2 penalty) (default: 0.0)
use_gpu (bool) – Whether to use GPU acceleration (default: True)
- __init__(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0.0, use_gpu=True)[source]
Initialize Adam optimizer.
- Parameters
params (Iterator[numpy.ndarray]) – Iterator of parameter arrays to optimize
lr (float) – Learning rate (default: 1e-3)
betas (tuple) – Coefficients for computing running averages (default: (0.9, 0.999))
eps (float) – Term added to denominator for numerical stability (default: 1e-8)
weight_decay (float) – Weight decay (L2 penalty) (default: 0.0)
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);betas(tuple, optional, default(0.9, 0.999));eps(float, optional, default1e-08);weight_decay(float, optional, default0.0);use_gpu(bool, optional, defaultTrue).Usage Example
import numpy as np from grilly.optim.adam import Adam instance = Adam(...) result = instance.__init__(params=np.zeros(1, dtype=np.float32), lr=0.001, betas=(), eps=1e-08, weight_decay=0.0, 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.adam import Adam instance = Adam(...) result = instance._get_backend()
- step(closure=None, gradients=None)[source]
Perform a single optimization step.
- Parameters
closure – Optional closure that reevaluates the model and returns loss
gradients – Optional dict mapping parameter IDs to gradients. If None, tries to get gradients from param.grad attribute.
Dependencies:
numpy.Variables:
closure(Any, optional, defaultNone);gradients(Any, optional, defaultNone).Usage Example
from grilly.optim.adam import Adam instance = Adam(...) result = instance.step(closure=None, gradients=None)
- _adam_update_gpu(backend, param, grad, exp_avg, exp_avg_sq, lr, beta1, beta2, eps, beta1_t, beta2_t)[source]
GPU-accelerated Adam update using adam-update.glsl shader.
Dependencies:
numpy.Variables:
backend(Any, required);param(Any, required);grad(Any, required);exp_avg(Any, required);exp_avg_sq(Any, required);lr(Any, required);beta1(Any, required);beta2(Any, required);eps(Any, required);beta1_t(Any, required);beta2_t(Any, required).Usage Example
from grilly.optim.adam import Adam instance = Adam(...) result = instance._adam_update_gpu(backend=None, param=None, grad=None, exp_avg=None, exp_avg_sq=None, lr=None, beta1=None, beta2=None, eps=None, beta1_t=None, beta2_t=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()
- class grilly.optim.adam.AffectAdam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0.0, use_gpu=True)[source]
Bases:
AdamAffect-aware Adam optimizer.
Uses: affect-adam.glsl
Similar to Adam but optimized for affect/emotion processing.
Initialize AffectAdam optimizer.
Args are the same as Adam.
- Parameters
params (Iterator[numpy.ndarray]) –
lr (float) –
betas (tuple) –
eps (float) –
weight_decay (float) –
use_gpu (bool) –
- __init__(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0.0, use_gpu=True)[source]
Initialize AffectAdam optimizer.
Args are the same as Adam.
Dependencies:
Nonedetected from callable globals.Variables:
params(collections.abc.Iterator[numpy.ndarray], required);lr(float, optional, default0.001);betas(tuple, optional, default(0.9, 0.999));eps(float, optional, default1e-08);weight_decay(float, optional, default0.0);use_gpu(bool, optional, defaultTrue).Usage Example
import numpy as np from grilly.optim.adam import AffectAdam instance = AffectAdam(...) result = instance.__init__(params=np.zeros(1, dtype=np.float32), lr=0.001, betas=(), eps=1e-08, weight_decay=0.0, use_gpu=True)
- Parameters
params (Iterator[numpy.ndarray]) –
lr (float) –
betas (tuple) –
eps (float) –
weight_decay (float) –
use_gpu (bool) –
- _adam_update_gpu(backend, param, grad, exp_avg, exp_avg_sq, lr, beta1, beta2, eps, beta1_t, beta2_t)[source]
GPU-accelerated AffectAdam update using affect-adam.glsl shader.
Dependencies:
Nonedetected from callable globals.Variables:
backend(Any, required);param(Any, required);grad(Any, required);exp_avg(Any, required);exp_avg_sq(Any, required);lr(Any, required);beta1(Any, required);beta2(Any, required);eps(Any, required);beta1_t(Any, required);beta2_t(Any, required).Usage Example
from grilly.optim.adam import AffectAdam instance = AffectAdam(...) result = instance._adam_update_gpu(backend=None, param=None, grad=None, exp_avg=None, exp_avg_sq=None, lr=None, beta1=None, beta2=None, eps=None, beta1_t=None, beta2_t=None)
- _get_backend()
Get or create backend instance
Dependencies:
Nonedetected from callable globals.Variables: This callable does not take explicit input variables.
Usage Example
from grilly.optim.adam import Adam instance = Adam(...) result = instance._get_backend()
- 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()
- step(closure=None, gradients=None)
Perform a single optimization step.
- Parameters
closure – Optional closure that reevaluates the model and returns loss
gradients – Optional dict mapping parameter IDs to gradients. If None, tries to get gradients from param.grad attribute.
Dependencies:
numpy.Variables:
closure(Any, optional, defaultNone);gradients(Any, optional, defaultNone).Usage Example
from grilly.optim.adam import Adam instance = Adam(...) result = instance.step(closure=None, gradients=None)
- 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()