EvoXVision Support

EvoXVision Support#

This notebook demostrate the use of EvoXVision in EvoX. EvoXVision requires a special binary file format that is specifically designed for evolutionary optimization workflow.

from evox import algorithms, problems, workflows, monitors

import jax.numpy as jnp
from jax import random
exv_adapter = monitors.EvoXVisionAdapter("/tmp/experiment.exv")
monitor = monitors.EvalMonitor(evoxvision_adapter=exv_adapter)
pso = algorithms.CSO(
    lb=jnp.full(shape=(2,), fill_value=-32),
    ub=jnp.full(shape=(2,), fill_value=32),
    pop_size=100,
)
ackley = problems.numerical.Ackley()
workflow = workflows.StdWorkflow(
    pso,
    ackley,
    monitors=[monitor],
)
key = random.PRNGKey(42)
state = workflow.init(key)

# run the workflow for 100 steps
for i in range(100):
    state = workflow.step(state)