8000 GitHub - Artanisax/evox: A Distributed GPU-accelerated Library towards Scalable Evolutionary Computation
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Artanisax/evox

 
 

Repository files navigation

Logo EvoX
A Distributed GPU-accelerated Framework for 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
6CEF
 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.numerical.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.

Support

  • For general discussion, please head to Github's discussion
  • For Chinese speakers, please consider to join the QQ group to discuss. (Group number: 297969717).

About

A Distributed GPU-accelerated Library towards Scalable Evolutionary Computation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • Nix 0.5%
0