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