Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
E

evosax

> 编程语言
Open source

Evolution Strategies in JAX

783 stars0 likes1 views
WebsiteGitHub

About

Evolution Strategies in JAX

evosax: Evolution Strategies in JAX

Tired of having to handle asynchronous processes for neuroevolution? Do you want to leverage massive vectorization and high-throughput accelerators for Evolution Strategies? evosax provides a comprehensive, high-performance library that implements Evolution Strategies (ES) in JAX. By leveraging XLA compilation and JAX's transformation primitives, evosax enables researchers and practitioners to efficiently scale evolutionary algorithms to modern hardware accelerators without the traditional overhead of distributed implementations.

The API follows the classical ask-eval-tell cycle of ES, with full support for JAX's transformations (jit, vmap, lax.scan). The library includes 30+ evolution strategies, from classics like CMA-ES and Differential Evolution to modern approaches like OpenAI-ES and Diffusion Evolution.

Get started here

Basic evosax API Usage

…

Population-based algorithms such as SimpleGA use the same ask-tell loop, but their state is initialized from an explicit initial population and its fitness:

python
import jax
import jax.numpy as jnp
from evosax.algorithms import SimpleGA

key = jax.random.key(0)
solution = dummy_solution
ga = SimpleGA(population_size=32, solution=solution)
params = ga.default_params

# Replicate a template solution (or provide your own evaluated population).
population_init = jax.tree.map(
    lambda x: jnp.repeat(x[None, ...], ga.population_size, axis=0),
    solution,
)
fitness_init = ...

# Initialize state from the initial population and its fitness.
state = ga.init(key, population_init, fitness_init, params)

The fitness_init argument seeds the stored population ranking used by the first ask(...) call. After initialization, ga.ask(...) returns the next population to evaluate and ga.tell(...) updates the algorithm state with the evaluated population and fitness.

Implemented Evolution Strategies

Strategy Reference Import Example
Simple Evolution Strategy Rechenberg (1978) SimpleES
OpenAI-ES Salimans et al. (2017) Open_ES
CMA-ES Hansen & Ostermeier (2001) CMA_ES
Sep-CMA-ES Ros & Hansen (2008) Sep_CMA_ES
xNES Wierstra et al. (2014) xNES
SNES Wierstra et al. (2014) SNES
MA-ES Bayer & Sendhoff (2017) MA_ES
LM-MA-ES Loshchilov et al. (2017) LM_MA_ES
Rm_ES Li & Zhang (2017) Rm_ES
PGPE Sehnke et al. (2010) PGPE
ARS Mania et al. (2018) ARS
ESMC Merchant et al. (2021) ESMC
Persistent ES Vicol et al. (2021) PersistentES
Noise-Reuse ES Li et al. (2023) NoiseReuseES
CR-FM-NES Nomura & Ono (2022) CR_FM_NES
Guided ES Maheswaranathan et al. (2018) GuidedES
ASEBO Choromanski et al. (2019) ASEBO
Discovered ES Lange et al. (2023a) DiscoveredES
LES Lange et al. (2023a) LearnedES
EvoTF Lange et al. (2024) EvoTF_ES
iAMaLGaM-Full Bosman et al. (2013) iAMaLGaM_Full
iAMaLGaM-Univariate Bosman et al. (2013) iAMaLGaM_Univariate
Gradientless Descent Golovin et al. (2019) [GradientlessDescent](https://github.com/RobertTLange/evosax/tree/main

Issues· 4 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Python

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言