Skip to main content

evozero

Evolve formulas and learning algorithms from zero — GPU-native evolutionary computation.

CI PyPI Python Ruff License

evozero is a GPU-accelerated evolutionary-computation toolkit with three engines that share one tensorized core:

  • SymbolicRegressor — Eureqa-style symbolic regression: discovers an interpretable equation y = f(X). Island-model GP + tensorized postfix interpreter + linear scaling + constant optimization, returning a full complexity-vs-accuracy Pareto front.
  • LearnerSearch — AutoML-Zero: evolves the learning algorithm itself (Setup/Predict/Learn over a typed-register VM), meta-trained across tasks so the discovered learner generalizes to unseen problems.
  • launch_dashboard — a dependency-free (stdlib) live web dashboard of the search.

import evozero never imports torch: export utilities (LaTeX, NumPy) work on machines without a GPU. PyTorch is only imported when you actually run a search.

Install

pip install evozero                 # CPU (brings the CPU torch wheel)
pip install "evozero[cuda]" --index-url https://download.pytorch.org/whl/cu128   # NVIDIA GPU
uv sync --extra cuda                # from a clone, for development

evozero does not pin a CUDA build of PyTorch — you choose the wheel that matches your driver. See https://pytorch.org/get-started/.

Quickstart — symbolic regression

import numpy as np
from evozero import SymbolicRegressor

X = np.random.randn(500, 2)
y = X[:, 0] ** 2 + X[:, 0] * X[:, 1] + np.sin(X[:, 1])

model = SymbolicRegressor(population_size=3000, generations=200,
                          device="auto", random_state=0, verbose=1)
model.fit(X, y)

print(model.best_equation_)     # x0*(x0 + x1) + sin(x1)
print(model.to_latex())         # x_{0} \left(x_{0} + x_{1}\right) + \sin{x_{1}}
f = model.to_numpy_func()       # pure-NumPy callable, no torch needed
model.pareto_front_             # [{'complexity', 'loss', 'r2', 'equation'}, ...]

Quickstart — AutoML-Zero

from evozero import LearnerSearch, Task

tasks = [Task(Xi, yi) for Xi, yi in my_meta_training_data]
search = LearnerSearch(population_size=200, max_time=60, device="auto", random_state=0)
search.fit(tasks)

learner = search.export_learner()      # a discovered EvolvedLearner
learner.fit(X_train, y_train)
preds = learner.predict(X_test)
print(learner.to_python_source())      # the evolved learning algorithm, as code

Live dashboard

from evozero import launch_dashboard
with launch_dashboard(port=8080) as dash:
    print("open", dash.url)
    ...  # push metrics with dash.update({...}) from a training callback

or evozero dashboard --port 8080.

Documentation

https://evozero.readthedocs.io · Changelog · Contributing

Citing

If evozero helps your research, please cite it — see CITATION.cff.

License

Apache-2.0 © Karim Touma. See LICENSE.

Metadata

Release files for evozero 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evozero 0.1.0
File Size Uploaded
evozero-0.1.0.tar.gz 40.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evozero 0.1.0
File Interpreter ABI Platform
evozero-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.2 kB

Release files / evozero-0.1.0.tar.gz

Download URL evozero-0.1.0.tar.gz
Size 40.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ce555f3b636d320e6caf21de06d5d28c3a02d94ac7c47b8aace8d1472a376948
BLAKE2b-256 checksum
How to use checksums
335d2e95e8d129d9e350ed95e94a9dc274f94659b2958bb3616ce42977abd2fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / evozero-0.1.0-py3-none-any.whl

Download URL evozero-0.1.0-py3-none-any.whl
Size 43.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
443343e44f4f7b0f37a37d2d1a4e875b8c60d3f95839f8f56ec12e4ab5f0fcdb
BLAKE2b-256 checksum
How to use checksums
467f74e0fdf1af56caef99314b43e41fe4e75ed3dc4b8b4fe8eb10515d8de772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page