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()