Optimizer API#

Optimizer API#

Lightweight adapter layer for external optimizers (e.g., Torch, JAX, or NumPy).

This module defines a minimal backend-agnostic interface for optimizers, supporting step and initialization hooks for flexible integration into training loops.

class qmlhc.optim.api.OptimizerAPI(step_fn, init_fn=None)[source]#

Bases: object

Minimal interface wrapper for optimizer backends.

Parameters:
  • step_fn (Callable[[Mapping[str, Any], Mapping[str, Any]], Mapping[str, Any]]) – Function that performs one parameter update given params and grads.

  • init_fn (Callable[[Mapping[str, Any]], Mapping[str, Any]] or None, optional) – Optional function that initializes optimizer state. If None, defaults to an empty dictionary.

initialize(params)[source]#

Initialize the optimizer state.

Parameters:

params (Mapping[str, Any]) – Model parameters to be used for optimizer state initialization.

Returns:

Initialized optimizer state (can be empty).

Return type:

Mapping[str, Any]

step(params, grads, state)[source]#

Apply one optimization step.

Parameters:
  • params (Mapping[str, Any]) – Current model parameters.

  • grads (Mapping[str, Any]) – Corresponding gradients for each parameter.

  • state (Mapping[str, Any]) – Optimizer state (if used).

Returns:

(new_params, new_state), where: - new_params : Mapping[str, Any] Updated parameter dictionary. - new_state : Mapping[str, Any] Updated optimizer state.

Return type:

tuple

qmlhc.optim.api.make_gradient_descent(lr=0.01)[source]#

Factory for a standalone NumPy-based gradient descent optimizer.

Parameters:

lr (float, optional) – Learning rate, by default 1e-2.

Returns:

Configured gradient descent optimizer instance.

Return type:

OptimizerAPI