Skip to main content

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
```


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

pydrobert-gpyopt-0.0.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

pydrobert_gpyopt-0.0.0-py2.py3-none-any.whl (11.7 kB view details)

Uploaded Python 2 Python 3

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

Hashes for pydrobert-gpyopt-0.0.0.tar.gz
Algorithm Hash digest
SHA256 2012c12f80741eee662d201ec0f47dd6f281807b55ec1903ae500cb51aca8af0
MD5 3ba3c637467959b2f0ee4fd88533117d
BLAKE2b-256 4720c190127769edcbdf804935aefcb7417c66ebabef8d7849dd48a63fb1581d

See more details on using hashes here.

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

Hashes for pydrobert_gpyopt-0.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e90221dce40f9f0cb2b525dd8206e4e8eb00905d9dc1fdbdf5b7f280f7b79e21
MD5 1681a34b9ad9bf7cfb94a7431cb7b6e5
BLAKE2b-256 a1f7ff70146ee99ab20c901058d4cc50240bfec2800c595247c9605235f08b7f

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