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:
-
EvoSolver
–EvoSolver instance.
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.