Skip to main content

evox

Project description

Logo 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


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)

Uploaded Source

Built Distribution

evox-0.4.0-py3-none-any.whl (484.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page