Skip to content

Evosax¤

rex.evo.evo(loss: Loss, solver: EvoSolver, init_state: evx.strategy.EvoState, transform: Transform, max_steps: int = 100, rng: jax.Array = None, verbose: bool = True, logger: LogState = None) -> Tuple[evx.strategy.EvoState, LogState, jax.Array] ¤

Run the Evolutionary Solver (can be jit-compiled).

Parameters:

  • loss (Loss) –

    Loss function.

  • solver (EvoSolver) –

    Evolutionary Solver.

  • init_state (EvoState) –

    Initial state of the Evolutionary Solver.

  • transform (Transform) –

    Transform function to go from a normalized set of trainable parameters to the denormalized and extended set of parameters.

  • max_steps (int, default: 100 ) –

    Maximum number of steps to run the Evolutionary Solver.

  • rng (Array, default: None ) –

    Random number generator.

  • verbose (bool, default: True ) –

    Whether to print the progress.

  • logger (LogState, default: None ) –

    Logger for the Evolutionary Solver.

Returns:

  • final_state ( EvoState ) –

    Final state of the Evolutionary Solver.

  • logger ( LogState ) –

    Logger for the Evolutionary Solver.

  • losses ( Array ) –

    Losses at each step.


rex.evo.EvoSolver ¤

Evolutionary Solver class to manage the evolutionary strategy and its parameters.

Attributes:

  • strategy_params (EvoParams) –

    Parameters for the evolutionary strategy.

  • strategy (Strategy) –

    Instance of the evolutionary strategy.

  • strategy_name (str) –

    Name of the strategy used.

init(u_min: Dict[str, Params], u_max: Dict[str, Params], strategy: str, strategy_kwargs: Dict = None, fitness_kwargs: Dict = None) -> EvoSolver classmethod ¤

Initialize the Evolutionary Solver.

Parameters:

  • u_min (Dict[str, Params]) –

    (Normalized) Minimum values for the parameters (pytree).

  • u_max (Dict[str, Params]) –

    (Normalized) Maximum values for the parameters (pytree).

  • strategy (str) –

    Name of the strategy to use from evosax.Strategies.

  • strategy_kwargs (Dict, default: None ) –

    Keyword arguments to pass to the strategy.

  • fitness_kwargs (Dict, default: None ) –

    Keyword arguments to pass to the fitness function of the strategy.

Returns:

init_state(mean: Dict[str, Params], rng: jax.Array = None) -> EvoState ¤

Initialize the state of the Evolutionary Solver.

Parameters:

  • mean (Dict[str, Params]) –

    Normalized mean values for the parameters (pytree).

  • rng (Array, default: None ) –

    Random number generator.

Returns:

  • EvoState ( EvoState ) –

    The initialized state of the Evolutionary Solver.

init_logger(num_generations: int, top_k: int = 5, maximize: bool = False) -> LogState ¤

Initialize the logger for the Evolutionary Solver.

Parameters:

  • num_generations (int) –

    Number of generations to log.

  • top_k (int, default: 5 ) –

    Number of top individuals to log.

  • maximize (bool, default: False ) –

    Whether the strategy is maximizing or minimizing.

Returns:

  • LogState ( LogState ) –

    The initialized log state.


rex.evo.EvoState = evx.strategy.EvoState module-attribute ¤


rex.evo.LogState ¤

LogState class to manage the logging of evolutionary strategy states.

Attributes:

  • state (Dict) –

    The current state of the logger.

  • logger (ESLog) –

    The logger instance used for logging.

save(filename: str) ¤

Save the log state to a file.

Parameters:

  • filename (str) –

    The name of the file to save to.

load(filename: str) -> LogState ¤

Load the log state from a file.

Parameters:

  • filename (str) –

    The name of the file to load from.

Returns:

  • LogState ( LogState ) –

    The loaded log state.

plot(title: str, ylims: List[int] = None, fig: plt.Figure = None, ax: plt.Axes = None, no_legend: bool = False) -> Tuple[plt.Figure, plt.Axes] ¤

Plot the log state.

Parameters:

  • title (str) –

    The title of the plot.

  • ylims (List[int], default: None ) –

    The y-axis limits.

  • fig (Figure, default: None ) –

    The figure to plot on.

  • ax (Axes, default: None ) –

    The axes to plot on.

  • no_legend (bool, default: False ) –

    Whether to omit the legend.

Returns:

  • Tuple[Figure, Axes]

    The plot.