Package: benchopt
—Making your optimization benchmarks simple and open—Benchoptis a benchmarking suite for optimization algorithms.
It is built for simplicity, transparency, and reproducibility.
It is implemented in Python but can run algorithms written inmany programming languages.So far,benchopthas been tested withPython,R,JuliaandC/C++(compiled binaries with a command line interface).
Programs available viacondashould be compatible as well.
See for instance anexample of usagewithR.InstallIt is recommended to usebenchoptwithin acondaenvironment to fully-benefit
frombenchoptCommand Line Interface (CLI).To installbenchopt, start by creating a newcondaenvironment and then activate itcondacreate-nbenchoptpythoncondaactivatebenchoptThen run the following command to install thelatest releaseofbenchoptpipinstall-UbenchoptIt is also possible to use thelatest development version. To do so, run insteadpipinstall--prebenchopt-U-ihttps://test.pypi.org/simpleGetting startedAfter installingbenchopt, you canreplicate/modify an existing benchmarkcreate your own benchmarkUsing an existing benchmarkReplicating an existing benchmark is simple.
Here is how to do so for theL2-logistic Regression benchmark.Clone the benchmark repository andcdto itgitclonehttps://github.com/benchopt/benchmark_logreg_l2cdbenchmark_logreg_l2Install the desired solvers automatically withbenchoptbenchoptinstall.-slightning-ssklearnRun the benchmark to get the figure belowbenchoptrun.--config./example_config.ymlThese steps illustrate how to reproduce theL2-logistic Regression benchmark.
Find the complete list of theAvailable benchmarks.
Also, refer to thedocumentationto learn more aboutbenchoptCLI and its features.
You can also easily extend this benchmark by adding a dataset, solver or metric.
Learn that and more in theBenchmark workflow.Creating a benchmarkThe sectionWrite a benchmarkof the documentation provides a tutorial
for creating a benchmark. Thebenchoptcommunity also maintains
atemplate benchmarkto quickly and easily start a new benchmark.Finding helpsJoinbenchoptdiscord serverand 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 thatbenchoptshould take.Citing BenchoptBenchoptis a continuous effort to make reproducible and transparent optimization benchmarks.
Join us in this endeavor! If you usebenchoptin 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 benchmarksProblemResultsBuild StatusOrdinary Least Squares (OLS)ResultsNon-Negative Least Squares (NNLS)ResultsLASSO: L1-Regularized Least SquaresResultsLASSO PathResultsElastic NetMCPResultsL2-Regularized Logistic RegressionResultsL1-Regularized Logistic RegressionResultsL2-regularized Huber regressionL1-Regularized Quantile RegressionResultsLinear SVM for Binary ClassificationLinear ICAApproximate Joint Diagonalization (AJD)1D Total Variation Denoising2D Total Variation DenoisingResNet ClassificationResultsBilevel OptimizationResultsBSD 3-Clause LicenseCopyright (c) 2019–2022 The Benchopt developers.
All rights reserved.Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.Neither the name of the Benchopt Developers nor the names of
its contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.