Hyperparameters

KKTHardNet accepts a training dictionary that is normalized into kkthn.training.KKTTrainConfig.

Common keys

Key

Meaning

epochs

Number of training epochs.

batch_size

Training batch size.

learning_rate

Adam learning rate.

hidden_size

Width of hidden MLP layers.

hidden_layers

Number of hidden MLP layers.

train_frac

Fraction of data used for training.

seed

Random seed for splitting and initialization.

dtype

Numeric precision, typically float64.

print_every

Console logging frequency.

eta

Optional loss threshold for starting projection training.

epoch_mlp

Optional epoch for starting projection training.

cons_alpha

Consistency-loss weight.

Projection keys

Key

Meaning

fb_eps

Fischer-Burmeister smoothing value.

gn_max_iters

Maximum projection solver iterations.

gn_tol

Projection residual tolerance.

gn_reg

Projection solve regularization.

newton_step_length

Initial step length for line search.

armijo_alpha

Armijo sufficient-decrease coefficient.

armijo_beta

Backtracking contraction coefficient.

max_backtrack_iter

Maximum backtracking steps.

backward_reg

Regularization in the implicit backward solve.

Core code reference

class kkthn.training.KKTTrainConfig(epochs: 'int' = 1200, batch_size: 'int' = 32, learning_rate: 'float' = 0.001, train_frac: 'float' = 0.8, hidden_size: 'int' = 64, hidden_layers: 'int' = 2, seed: 'int' = 42, dtype: 'str' = 'float64', print_every: 'int' = 1, drop_last: 'bool' = False, eta: 'float | None' = None, epoch_mlp: 'int | None' = None, cons_alpha: 'float' = 0.0, projection: 'ProjectionSettings' = ProjectionSettings(fb_eps=1e-08, gn_max_iters=30, gn_tol=1e-06, gn_reg=0.001, newton_step_length=0.5, armijo_alpha=0.0001, armijo_beta=0.5, max_backtrack_iter=10, armijo_max_steps=10, backward_reg=1e-08))[source]

Bases: object

epochs: int = 1200
batch_size: int = 32
learning_rate: float = 0.001
train_frac: float = 0.8
hidden_size: int = 64
hidden_layers: int = 2
seed: int = 42
dtype: str = 'float64'
print_every: int = 1
drop_last: bool = False
eta: float | None = None
epoch_mlp: int | None = None
cons_alpha: float = 0.0
projection: ProjectionSettings = ProjectionSettings(fb_eps=1e-08, gn_max_iters=30, gn_tol=1e-06, gn_reg=0.001, newton_step_length=0.5, armijo_alpha=0.0001, armijo_beta=0.5, max_backtrack_iter=10, armijo_max_steps=10, backward_reg=1e-08)
class kkthn.projection.ProjectionSettings(fb_eps: 'float' = 1e-08, gn_max_iters: 'int' = 30, gn_tol: 'float' = 1e-06, gn_reg: 'float' = 0.001, newton_step_length: 'float' = 0.5, armijo_alpha: 'float' = 0.0001, armijo_beta: 'float' = 0.5, max_backtrack_iter: 'int' = 10, armijo_max_steps: 'int' = 10, backward_reg: 'float' = 1e-08)[source]

Bases: object

fb_eps: float = 1e-08
gn_max_iters: int = 30
gn_tol: float = 1e-06
gn_reg: float = 0.001
newton_step_length: float = 0.5
armijo_alpha: float = 0.0001
armijo_beta: float = 0.5
max_backtrack_iter: int = 10
armijo_max_steps: int = 10
backward_reg: float = 1e-08