L2 Regularization
mport torch.optim as optim
# Pass weight_decay to apply L2 regularization automatically
optimizer = optim.Adam(model.parameters(), lr=0.001, weight_decay=1e-4)
L1 Regularization
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
# Base loss
loss = criterion(outputs, targets)
# Calculate manual L1 penalty
l1_lambda = 1e-5
l1_norm = sum(p.abs().sum() for p in model.parameters())
# Combine losses
total_loss = loss + (l1_lambda * l1_norm)
total_loss.backward()
optimizer.step()