evox
Project description
EvoX
A Distributed GPU-accelerated Library towards Scalable Evolutionary Computation
Features
- Single-objective and multi-objective algorithms.
- GPU computing.
- Easy to use distributed pipeline.
- Support a wide range of problems.
- Hierarchical state managing.
Index
Installation
pip install evox
Quick Start
To start with, import evox
import evox
from evox import algorithms, problems, pipelines
Then, create an algorithm and a problem:
pso = algorithms.PSO(
lb=jnp.full(shape=(2,), fill_value=-32),
ub=jnp.full(shape=(2,), fill_value=32),
pop_size=100,
)
ackley = problems.classic.Ackley()
The algorithm and the problem are composed together using pipeline
:
pipeline = pipelines.StdPipeline(pso, ackley)
To initialize the whole pipeline, call init
on the pipeline object with a PRNGKey. Calling init
will recursively initialize a tree of objects, meaning the algorithm pso and problem ackley are automatically initialize as well.
key = jax.random.PRNGKey(42)
state = pipeline.init(key)
To run the pipeline, call step
on the pipeline.
# run the pipeline for 100 steps
for i in range(100):
state = pipeline.step(state)
More Tutorial
Head to our tutorial page.
Example
The example folder has many examples on how to use EvoX.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
evox-0.4.0.tar.gz
(412.9 kB
view hashes)
Built Distribution
evox-0.4.0-py3-none-any.whl
(484.1 kB
view hashes)