Getting Started
Quick Start
After installing humancompatible-train, you can import it in your Python code:
from humancompatible.train.dual_optim import *
Basic Example
This is an abstract code sample; you can find runnable examples in the Basic Usage section.
from humancompatible.train.dual_optim import ALM
device = ...
num_constraints = ...
optimizer = torch.optim.Adam(model.parameters(), ...)
dual_optimizer = ALM(m=num_constraints, ..., device=device)
for inputs, labels in dataloader:
# evaluate objective
outputs = model(inputs)
loss = criterion(outputs, labels)
# evaluate tensor of constraints
constraints = evaluate_constraints(inputs, labels, ...)
# evaluate lagrangian and update dual variables
lagrangian = dual_optimizer.forward_update(loss, constraints)
# backward pass and step
lagrangian.backward()
optimizer.step()
optimizer.zero_grad()
Note
For detailed examples (including inequality constraints), see the Basic Usage and tutorials/inequality_constraints sections.
Next Steps
Read the Basic Usage guide for a complete example
If you encounter issues, visit the Troubleshooting page