Welcome to shootout’s documentation!#

This package is still under development.

Click here to go the API.

Context#

Why I wrote this package:#

Comparing numerical optimization algorithms is always a pain for me. Things I hate to do:

  • writing lots of loops for testing various hyperparameters.

  • writing the code to store the results, painfully changing details all the time.

  • comparing algorithms in a fair manner though lengthy plotting scripts.

  • comming back to old codes for review updates a year after the simulations, and finding I did not store all the hyperpameters by mistake.

  • looking up plotly syntax when updating plots, every single time.

  • reading papers that compare algorithms in one run/one set of parameters.

Plus I am a very chaotic person, changing workflow every single paper. So I needed some tools to balance this entropy and make my life easier.

What this does#

  • Using a decorator function @run_and_track(), one may run a script many times with user-defined hyperparameters grid; store all the results in clearly formatted pandas dataframe usable by plotly express.

  • provide a few helpful functions for processing this dataframe, to produce interesting comparison plots (convergence plots, who is fastest at given threshold plots)

Installation#

The package can be pip installed using:

pip install shootout-opt

or by cloning the repo and run:

pip install -e .

with root in the root folder of this package.

Feedback#

I wrote this for myself, but if you have some ideas for improvements or new features, feel free to drop an issue or a pull request.