Skip to main content

Polaris is a hyperparamter optimization library.

Project description

# Polaris : Hyperparamter optimization library.

[![Documentation Status](https://readthedocs.org/projects/polaris/badge/?version=latest)](https://polaris.readthedocs.io/en/latest/?badge=latest)

Polaris is a hyperparamter optimization library.
We plan to support every state-of-art tuning method as follows.

- Random Search
- Bayesian Optimization
- Tree-structured Parzen Estimators (TPE)

## Documentation
Polaris' documentation can be found at [https://polaris.readthedocs.io/](https://polaris.readthedocs.io/)

## Prerequisites
- Python >= 3.6
- RabbitMQ (Only for parallel execution)

## Installation

```shell
$ pip install polaris-py
```

## Examples

### Sequential Execution

```python
from polaris import Polaris, STATUS_SUCCESS, Trials, Bounds


def pseudo_train(params, exp_info):
lr_squared = (params['lr'] - 0.006) ** 2
weight_decay_squared = (params['weight_decay'] - 0.02) ** 2
loss = lr_squared + weight_decay_squared
return {
'loss': loss,
'status': STATUS_SUCCESS,
}


if __name__ == '__main__':
bounds = [
Bounds('lr', 0.001, 0.01),
Bounds('weight_decay', 0.0002, 0.04),
]
trials = Trials()
polaris = Polaris(
pseudo_train, bounds, 'bayesian_opt',
trials, max_evals=100, exp_key='this_is_test')
best_params = polaris.run()
print(best_params)
```

### Parallel Execution

#### Single Process

1. Run `rabbitmq-server`
1. Set `RABBITMQ_URL` (ampq://guest:guest@localhost//)
1. Run `polaris-worker --exp-key this_is_test`
1. Run codes as follows

### Multiple Processes (Use MPI)

1. Run `rabbitmq-server`
1. Set `RABBITMQ_URL` (ampq://guest:guest@localhost//)
1. Run `mpirun -n 4 polaris-worker --mpi --exp-key this_is_test`
1. Run codes as follows


```python

...

if __name__ == '__main__':
bounds = [
Bounds('lr', 0.001, 0.01),
Bounds('weight_decay', 0.0002, 0.04),
]
trials = Trials()
polaris = Polaris(
pseudo_train, bounds, 'bayesian_opt',
trials, max_evals=100, exp_key='this_is_test')
best_params = polaris.run_parallel()
print(best_params)
```


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

polaris-py-0.7.3.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

polaris_py-0.7.3-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file polaris-py-0.7.3.tar.gz.

File metadata

  • Download URL: polaris-py-0.7.3.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for polaris-py-0.7.3.tar.gz
Algorithm Hash digest
SHA256 12cda01ff855237199afe56c7198b0c9766b4ee4bd41bbef9da7891967d94252
MD5 7878507d9fc9a6c0d25d254d49eec354
BLAKE2b-256 04538a7f151272b10499a878e99e19f298bc92142e032b8e77b28cb7aeba91e0

See more details on using hashes here.

File details

Details for the file polaris_py-0.7.3-py3-none-any.whl.

File metadata

File hashes

Hashes for polaris_py-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 014bf35dd5bf875cadb1f9be11bc9c4c0e5c6410746cfc951087876a7f9dbce8
MD5 923101ae4b67de204731dcd83e6e28aa
BLAKE2b-256 e33cfadeb8ffedb26dda352f9cc59a7807b8dd322f89450d768cfaa0e3af48b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page