Skip to content

optim API

SGD

python
from MiniTorch.optim.sgd import SGD

Stochastic Gradient Descent with optional momentum.

Constructor

python
SGD(parameters, lr=0.01, momentum=0.0)
ParameterDefaultDescription
parametersList of Variable objects
lr0.01Learning rate
momentum0.0Momentum factor (0 = plain SGD)

Methods

.step()

Updates each parameter: p ← p - lr * p.grad (with momentum if set).

.zero_grad()

Resets all parameter gradients to None.

Example

python
optimizer = SGD(model.parameters(), lr=0.01, momentum=0.9)

optimizer.zero_grad()
loss.backward()
optimizer.step()

Adam

python
from MiniTorch.optim.adam import Adam

Adam optimizer with bias correction (Kingma & Ba, 2015).

Constructor

python
Adam(parameters, lr=1e-3, beta1=0.9, beta2=0.999, eps=1e-8)
ParameterDefaultDescription
parametersList of Variable objects
lr1e-3Learning rate
beta10.9First-moment decay
beta20.999Second-moment decay
eps1e-8Numerical stability

Methods

Same as SGD: .step() and .zero_grad().

Example

python
optimizer = Adam(model.parameters(), lr=1e-3)

for x_batch, y_batch in dataloader:
    logits = model(x_batch)
    loss = softmax_cross_entropy(logits, y_batch)

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Released under the MIT License.