pyai.docs

Machine Learning › 11 of 14

PyTorch Training Loop

Tensors, autograd, and the canonical training loop.

python
import torch, torch.nn as nn

model = nn.Sequential(nn.Linear(10, 64), nn.ReLU(), nn.Linear(64, 1))
opt = torch.optim.AdamW(model.parameters(), lr=1e-3)
loss_fn = nn.MSELoss()

for epoch in range(10):
    model.train()
    for xb, yb in loader:
        opt.zero_grad()
        loss = loss_fn(model(xb), yb)
        loss.backward()
        opt.step()

model.eval()
with torch.no_grad():
    preds = model(X_test)
  • zero_grad → forward → loss → backward → step
  • model.eval() disables dropout/batchnorm updates
  • torch.no_grad() saves memory at inference

⚡ Quick check

  • ✓ zero_grad, backward, step
  • ✓ model.train() / model.eval()
  • ✓ with torch.no_grad()