quri_parts.algo.optimizer.interface module#
- quri_parts.algo.optimizer.interface.Params: typing_extensions.TypeAlias = 'npt.NDArray[np.float_]'#
Represents a parameter vector subject to optimization. (A gradient vector is also represented as Params.)
- quri_parts.algo.optimizer.interface.CostFunction#
Cost function for optimization.
alias of
Callable
[[npt.NDArray[np.float_]
],float
]
- quri_parts.algo.optimizer.interface.GradientFunction#
Gradient function for optimization.
alias of
Callable
[[npt.NDArray[np.float_]
],npt.NDArray[np.float_]
]
- class quri_parts.algo.optimizer.interface.OptimizerStatus(value)#
Bases:
Enum
Status of optimization.
- SUCCESS = 1#
No error, not converged yet.
- FAILED = 2#
The optimization failed and cannot be continued.
- CONVERGED = 3#
The optimization converged.
- class quri_parts.algo.optimizer.interface.OptimizerState(params: npt.NDArray[np.float_], cost: float = 0.0, status: OptimizerStatus = OptimizerStatus.SUCCESS, niter: int = 0, funcalls: int = 0, gradcalls: int = 0)#
Bases:
object
An immutable (frozen) dataclass representing an optimizer state.
- params: npt.NDArray[np.float_]#
Current parameter values.
- cost: float = 0.0#
Current value of the cost function.
- status: OptimizerStatus = 1#
Optimization status.
- niter: int = 0#
Number of iterations.
- funcalls: int = 0#
Number of cost function calls.
- gradcalls: int = 0#
Number of gradient function calls.
- property n_params: int#
Number of parameters.
- class quri_parts.algo.optimizer.interface.Optimizer(*args, **kwargs)#
Bases:
Protocol
A protocol class for optimizers.
- abstract get_init_state(init_params: npt.NDArray[np.float_]) OptimizerState #
Returns an initial state for optimization.
- abstract step(state: OptimizerState, cost_function: Callable[[npt.NDArray[np.float_]], float], grad_function: Callable[[npt.NDArray[np.float_]], npt.NDArray[np.float_]] | None = None) OptimizerState #
Run a single optimization step and returns a new state.