Benchmark toolkit for optimization
Project description
—Making your ML and optimization benchmarks simple and open—
Benchopt is a benchmarking suite tailored for machine learning workflows. It is built for simplicity, transparency, and reproducibility. It is implemented in Python but can run algorithms written in many programming languages.
So far, benchopt has been tested with Python, R, Julia and C/C++ (compiled binaries with a command line interface). Programs available via conda should be compatible as well. See for instance an example of usage with R.
Install
It is recommended to use benchopt within a conda environment to fully-benefit from benchopt Command Line Interface (CLI).
To install benchopt, start by creating a new conda environment and then activate it
conda create -n benchopt python
conda activate benchopt
Then run the following command to install the latest release of benchopt
pip install -U benchopt
It is also possible to use the latest development version. To do so, run instead
pip install git+https://github.com/benchopt/benchopt.git
Getting started
After installing benchopt, you can
replicate/modify an existing benchmark
create your own benchmark
Using an existing benchmark
Replicating an existing benchmark is simple. Here is how to do so for the L2-logistic Regression benchmark.
Clone the benchmark repository and cd to it
git clone https://github.com/benchopt/benchmark_logreg_l2
cd benchmark_logreg_l2
Install the desired solvers automatically with benchopt
benchopt install . -s lightning -s sklearn
Run the benchmark to get the figure below
benchopt run . --config ./example_config.yml
These steps illustrate how to reproduce the L2-logistic Regression benchmark. Find the complete list of the Available benchmarks. Also, refer to the documentation to learn more about benchopt CLI and its features. You can also easily extend this benchmark by adding a dataset, solver or metric. Learn that and more in the Benchmark workflow.
Creating a benchmark
The section Write a benchmark of the documentation provides a tutorial for creating a benchmark. The benchopt community also maintains a template benchmark to quickly and easily start a new benchmark.
Finding help
Join benchopt discord server and get in touch with the community! Feel free to drop us a message to get help with running/constructing benchmarks or (why not) discuss new features to be added and future development directions that benchopt should take.
Citing Benchopt
Benchopt is a continuous effort to make reproducible and transparent ML and optimization benchmarks. Join us in this endeavor! If you use benchopt in a scientific publication, please cite
@inproceedings{benchopt,
author = {Moreau, Thomas and Massias, Mathurin and Gramfort, Alexandre
and Ablin, Pierre and Bannier, Pierre-Antoine
and Charlier, Benjamin and Dagréou, Mathieu and Dupré la Tour, Tom
and Durif, Ghislain and F. Dantas, Cassio and Klopfenstein, Quentin
and Larsson, Johan and Lai, En and Lefort, Tanguy
and Malézieux, Benoit and Moufad, Badr and T. Nguyen, Binh and Rakotomamonjy,
Alain and Ramzi, Zaccharie and Salmon, Joseph and Vaiter, Samuel},
title = {Benchopt: Reproducible, efficient and collaborative optimization benchmarks},
year = {2022},
booktitle = {NeurIPS},
url = {https://arxiv.org/abs/2206.13424}
}
Available benchmarks
Problem |
Results |
Build Status |
|---|---|---|
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file benchopt-1.8.0.tar.gz.
File metadata
- Download URL: benchopt-1.8.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cc3fa74c0d75bf58b3cae8c24fff89e406a4743bc18dfdd2f6e530b65b45a7a
|
|
| MD5 |
3c7560b2bebfe4faf417da75a148840e
|
|
| BLAKE2b-256 |
8cdcff9d55f377795c5c8919008d35b7ab2d12077d132aec769328cdf9a543c9
|
Provenance
The following attestation bundles were made for benchopt-1.8.0.tar.gz:
Publisher:
release.yml on benchopt/benchopt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
benchopt-1.8.0.tar.gz -
Subject digest:
2cc3fa74c0d75bf58b3cae8c24fff89e406a4743bc18dfdd2f6e530b65b45a7a - Sigstore transparency entry: 834933992
- Sigstore integration time:
-
Permalink:
benchopt/benchopt@3ae3b977c033cb93243253b1a584ff47d4a7d067 -
Branch / Tag:
refs/tags/1.8.0 - Owner: https://github.com/benchopt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ae3b977c033cb93243253b1a584ff47d4a7d067 -
Trigger Event:
push
-
Statement type:
File details
Details for the file benchopt-1.8.0-py3-none-any.whl.
File metadata
- Download URL: benchopt-1.8.0-py3-none-any.whl
- Upload date:
- Size: 196.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63a593c774c6791bfae36f159809240cbec57a0cd37c4d6b4a69ed982ef1fd32
|
|
| MD5 |
2f45d3f907878064e0b5e5f18f5b6ff5
|
|
| BLAKE2b-256 |
70c0908740717d6e38f8c468e44e7492edc64cd658648ecba30967ab8698593e
|
Provenance
The following attestation bundles were made for benchopt-1.8.0-py3-none-any.whl:
Publisher:
release.yml on benchopt/benchopt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
benchopt-1.8.0-py3-none-any.whl -
Subject digest:
63a593c774c6791bfae36f159809240cbec57a0cd37c4d6b4a69ed982ef1fd32 - Sigstore transparency entry: 834933995
- Sigstore integration time:
-
Permalink:
benchopt/benchopt@3ae3b977c033cb93243253b1a584ff47d4a7d067 -
Branch / Tag:
refs/tags/1.8.0 - Owner: https://github.com/benchopt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ae3b977c033cb93243253b1a584ff47d4a7d067 -
Trigger Event:
push
-
Statement type: