Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seba-1511/randopt
Streamlined machine learning experiment management.
https://github.com/seba-1511/randopt
experiments hyperparameter-optimization hyperparameters visualization
Last synced: 16 days ago
JSON representation
Streamlined machine learning experiment management.
- Host: GitHub
- URL: https://github.com/seba-1511/randopt
- Owner: seba-1511
- License: apache-2.0
- Created: 2016-10-24T18:52:04.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-04-27T20:48:19.000Z (over 4 years ago)
- Last Synced: 2024-12-02T18:58:26.996Z (24 days ago)
- Topics: experiments, hyperparameter-optimization, hyperparameters, visualization
- Language: HTML
- Homepage: http://randopt.ml
- Size: 9.89 MB
- Stars: 106
- Watchers: 5
- Forks: 8
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
--------------------------------------------------------------------------------
[![Build Status](https://travis-ci.org/seba-1511/randopt.svg?branch=master)](https://travis-ci.org/seba-1511/randopt)
[![PyPI version](https://badge.fury.io/py/randopt.svg)](https://badge.fury.io/py/randopt)randopt is a Python package for machine learning experiment management, hyper-parameter optimization, and results visualization. Some of its features include:
* result logging and management,
* human-readable format,
* support for parallelism / distributed / asynchronous experiments,
* command-line and programmatic API,
* shareable, flexible Web visualization,
* automatic hyper-parameter search, and
* pure Python - no dependencies !# Installation
```shell
pip install randopt
```# Usage
```python
import randopt as rodef loss(x):
return x**2e = ro.Experiment('myexp', {
'alpha': ro.Gaussian(mean=0.0, std=1.0, dtype='float'),
})# Sampling parameters
for i in xrange(100):
e.sample('alpha')
res = loss(e.alpha)
print('Result: ', res)
e.add_result(res)# Manually setting parameters
e.alpha = 0.00001
res = loss(e.alpha)
e.add_result(res)# Search over all experiments results, including ones from previous runs
opt = e.minimum()
print('Best result: ', opt.result, ' with params: ', opt.params)
```## Results Visualization
Once you obtained some results, run `roviz.py path/to/experiment/folder` to visualize them in your web browser.
For more info on visualization and `roviz.py`, refer to the [Visualizing Results](https://github.com/seba-1511/randopt/wiki/Visualizing-Results) tutorial.
## Hyper-Parameter Optimization
To generate results and search for good hyper-parameters you can either user `ropt.py` or write your own optimizaiton script using the [Evolutionary](https://github.com/seba-1511/randopt/wiki/evolutionary) and [GridSearch](https://github.com/seba-1511/randopt/wiki/grid_search) classes.
For more info on hyper-parameter optimization, refer to the [Optimizing Hyperparams](https://github.com/seba-1511/randopt/wiki/Optimizing-Hyperparams) tutorial.
# Documentation
For more examples, tutorials, and documentation refer to the [wiki](https://github.com/seba-1511/randopt/wiki).
# Contributing
To contribute to Randopt, it is recommended to follow the [contribution guidelines](CONTRIBUTING.md).
### Acknowledgements
Randopt is maintained by [Séb Arnold](http://seba1511.com), with numerous contributions from the following persons.* Noel Trivedi
* Cyrus Jia
* Daler Asrorov# License
Randopt is released under the Apache 2 License. For more information, refer to the [LICENSE file](LICENSE.txt).
I would love to hear how your use Randopt. Feel free to [drop me a line](http://seba1511.com) !