Utilities to streamline GPyOpt interfaces for ML
Project description
# pydrobert-gpyopt
Utilities to streamline GPyOpt interfaces for ML
## How to use
GPyOpt is incredibly powerful, but a tad clunky. This lightweight package
provides two utilities in ``pydrobert.gpyopt`` to make things easier. The
first, ``GPyOptObjectiveWrapper``, wraps a function for use in GPyOpt. The
second, ``bayesopt``, takes a wrapper instance and a
``BayesianOptimizationParams`` instance and handles the optimization loop.
Here's an example:
``` python
def foo(a, d, b, **kwargs):
r = a ** d + b
weirdness = kwargs['weirdness']
if weirdness == 'flip':
r *= -1
elif weirdness == 'null':
r = 0
return r
wrapped = GPyOptObjectiveWrapper(foo)
wrapped.set_fixed_parameter('b', 1.) # 'b' will always be 1
wrapped.set_variable_parameter('a', 'continuous', (-1., 1.)) # a is real
# btw [-1,1] inc
wrapped.set_variable_parameter('d', 'discrete', (0, 3)) # d is an int
# btw [0, 3] inc
wrapped.add_parameter('weirdness') # we can add new parameters as dynamic
# keyword args if the method has a **
# parameter
wrapped.set_variable_parameter( # weirness one of the elements in the list
'weirdness', 'categorical', ('flip', 'null', None))
params = BayesianOptimizationParams(
seed=1, # setting this makes the bayesian optimization deterministic
# (assuming foo is deterministic)
log_after_iters=5,
)
best = bayesopt(wrapper, params, 'hist.csv')
```
If you provide a history file to read/write from, optimization can be
resumed after unexpected interrupts. There are a lot of options to ``bayesopt``
that are listed in ``BayesianOptimizationParams``.
## Installation
GPyOpt currently does not have a Conda build, so pydrobert-gpyopt is available
via PyPI and source install.
``` bash
pip install pydrobert-gpyopt
```
Utilities to streamline GPyOpt interfaces for ML
## How to use
GPyOpt is incredibly powerful, but a tad clunky. This lightweight package
provides two utilities in ``pydrobert.gpyopt`` to make things easier. The
first, ``GPyOptObjectiveWrapper``, wraps a function for use in GPyOpt. The
second, ``bayesopt``, takes a wrapper instance and a
``BayesianOptimizationParams`` instance and handles the optimization loop.
Here's an example:
``` python
def foo(a, d, b, **kwargs):
r = a ** d + b
weirdness = kwargs['weirdness']
if weirdness == 'flip':
r *= -1
elif weirdness == 'null':
r = 0
return r
wrapped = GPyOptObjectiveWrapper(foo)
wrapped.set_fixed_parameter('b', 1.) # 'b' will always be 1
wrapped.set_variable_parameter('a', 'continuous', (-1., 1.)) # a is real
# btw [-1,1] inc
wrapped.set_variable_parameter('d', 'discrete', (0, 3)) # d is an int
# btw [0, 3] inc
wrapped.add_parameter('weirdness') # we can add new parameters as dynamic
# keyword args if the method has a **
# parameter
wrapped.set_variable_parameter( # weirness one of the elements in the list
'weirdness', 'categorical', ('flip', 'null', None))
params = BayesianOptimizationParams(
seed=1, # setting this makes the bayesian optimization deterministic
# (assuming foo is deterministic)
log_after_iters=5,
)
best = bayesopt(wrapper, params, 'hist.csv')
```
If you provide a history file to read/write from, optimization can be
resumed after unexpected interrupts. There are a lot of options to ``bayesopt``
that are listed in ``BayesianOptimizationParams``.
## Installation
GPyOpt currently does not have a Conda build, so pydrobert-gpyopt is available
via PyPI and source install.
``` bash
pip install pydrobert-gpyopt
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pydrobert-gpyopt-0.0.0.tar.gz
(11.2 kB
view details)
Built Distribution
File details
Details for the file pydrobert-gpyopt-0.0.0.tar.gz
.
File metadata
- Download URL: pydrobert-gpyopt-0.0.0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2012c12f80741eee662d201ec0f47dd6f281807b55ec1903ae500cb51aca8af0 |
|
MD5 | 3ba3c637467959b2f0ee4fd88533117d |
|
BLAKE2b-256 | 4720c190127769edcbdf804935aefcb7417c66ebabef8d7849dd48a63fb1581d |
File details
Details for the file pydrobert_gpyopt-0.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: pydrobert_gpyopt-0.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e90221dce40f9f0cb2b525dd8206e4e8eb00905d9dc1fdbdf5b7f280f7b79e21 |
|
MD5 | 1681a34b9ad9bf7cfb94a7431cb7b6e5 |
|
BLAKE2b-256 | a1f7ff70146ee99ab20c901058d4cc50240bfec2800c595247c9605235f08b7f |