Parameters
The main interface for running the solver is run_solver() function. It takes the following arguments:
input_args: Input arguments for the solver.
solver_args: Solver arguments for the solver.
compute_args: Compute arguments for the solver.
objective_args: Objective arguments for the solver.
mlflow_config: MLflow configuration for the solver.
Input Arguments
The input arguments are displayed in the following table.
Input Arguments |
Is Required |
Default Value |
Description |
|---|---|---|---|
|
true |
N/A |
Tensor A. |
|
true |
N/A |
Tensor b. |
|
true |
N/A |
Tensor C. |
|
true |
N/A |
Projection maps. |
Solver Parameters
The solver settings are displayed in the following table.
Solevr Arguments |
Is Required |
Default Value |
Description |
|---|---|---|---|
|
false |
1E-3 |
Ridge regularization parameter. |
|
false |
10000 |
Maximum number of iterations. |
|
false |
1e-5 |
Initial step size for the solver. |
|
false |
0.1 |
Upper bound for the solver’s step size. |
|
false |
false |
Flag to save primal variable values at the solution. |
|
false |
None |
Filepath to initialize dual variables for algorithm restarts (optional). |
|
false |
None |
Type of gamma decay. We currently support “none” and “step”. |
|
false |
None |
Parameters for gamma decay. For “step” type gamme decay, “decay_steps” and “decay_rate” are the tunable parameters. |
|
false |
None |
Number of steps before decaying gamma. This is only applicable when “step” type gamma decay is used. |
|
false |
None |
Rate of gamma decay. This is only applicable when “step” type gamma decay is used. |
Compute Parameters
The compute settings are displayed in the following table.
Compute Arguments |
Is Required |
Default Value |
Description |
|---|---|---|---|
|
true |
N/A |
Host device to compute the gradients. Choose from ‘cuda:0’ or ‘cpu’ with cuda:0 used when cuda is available. |
|
false |
1 |
Number of compute devices to use for gradient computation. |
The most efficient parameters are dependent on the problem scale and structure and there is no one-size-fits-all configuration. The default parameters usually can achieve acceptable performance, but users can definitely try tuning them if needed.
Objective Arguments
The objective arguments are displayed in the following table.
Objective Arguments |
Is Required |
Default Value |
Description |
|---|---|---|---|
|
true |
N/A |
Type of objective function. |
|
false |
None |
Parameters for the objective function. |
MLflow Configuration
The MLflow configuration is displayed in the following table.
MLflow Configuration |
Is Required |
Default Value |
Description |
|---|---|---|---|
|
true |
N/A |
Whether to enable MLflow logging. |
|
false |
None |
MLflow tracking URI. |
|
false |
None |
MLflow experiment name. |
|
false |
None |
MLflow run name. |
The function run_solver() returns a SolverResult object.
SolverResult
The solver result is displayed in the following table.
Solver Result |
Default Value |
Description |
|---|---|---|
|
N/A |
Dual variable value. |
|
N/A |
Dual objective value. |
|
N/A |
The result of one gradient call. |
|
N/A |
Log of dual objective values. |
|
N/A |
Log of step sizes. |
dual_objective_result is an object of the class ObjectiveResult and it contains the following attributes:
dual_gradient: Gradient of the dual objective function.dual_objective: Dual objective value.reg_penalty: Regularization penalty.primal_objective: Primal objective value.primal_var: Primal variable value.dual_val_times_grad: Dual variable times gradient.max_pos_slack: Maximum positive slack.sum_pos_slack: Sum of positive slack.