Run algorithms, store and compare their outputs
Project description
SHOOTOUT toolbox
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 running
pip install -e .
with root in the root folder of this package.
TODOS
- TODO: auto-tests on push on github
- TODO: sphynx doc, online
- TODO: pipelines
- TODO: examples
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
shootout-opt-0.2.3.tar.gz
(16.5 kB
view hashes)
Built Distribution
Close
Hashes for shootout_opt-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a7c7188571a9d13ee1c222057a57e8e80d24338b6ce94c72c23623f4cc8caea |
|
MD5 | ee05c1d6ad0adf2ca53889d933162c2d |
|
BLAKE2b-256 | bf6387f2fc0d1519bfdac068a98e7cfca86a50ab466799f3aa55a195ecf27d66 |