Skip to main content

Build deployable model ensembles without refactoring your code.

Project description

ensemble

A model ensemble utility optimized for low barrier integration

TL;DR this lets you use one thing to call many things.

Model Ensemble

Examples

Define your model functions and create your ensemble:

>>> from ensemble import Ensemble
>>> def square(x):
...     return x**2
...
>>> def cube(y):
...     return y**3
...
>>> my_ensemble = Ensemble(
...     name='e1',
...     children=[function1, function2],
... )

Multiplex between functions:

>>> my_ensemble(child='square', x=2)
4
>>> my_ensemble(child='cube', y=2)
8

Call all the models in the ensemble:

>>> my_ensemble.all(x=2, y=2)
{'square': 4, 'cube': 8}

You may instead decorate your model functions with @model in order to attach them to an ensemble:

>>> from ensemble import child
>>> @child('e2')
... def func1(x):
...     return x**2
...
>>> @child('e2')
... def func2(x):
...     return x**3
...
>>> e2 = Ensemble('e2')
>>> e2.all(x=3)
{'func1': 9, 'func2': 27}

You may even attach a model to multiple ensembles! (this is one main reason ensemble is useful)

>>> @child('e2', 'e3')
... def func3(x, y):
...     return x**3 + y
...
>>> e2.all(x=2, y=3)
{'func1': 4, 'func2': 8, 'func3': 11}
>>>
>>> e3 = Ensemble('e3')
>>> e3.all(x=2, y=3)
{'func3': 11}

If you forget what models are in your ensemble, just check:

>>> e2
Ensemble(
  name='e2',
  children={
    'func1': <function func1 at 0x1024fa9d8>
    'func2': <function func2 at 0x1024faa60>
    'func3': <function func3 at 0x1024fa950>
  },
  weights=None,
)
>>> e3
Ensemble(
  name='e3',
  children={
    'func3': <function func3 at 0x1024fa950>
  },
  weights=None,
)

In the above example, ensemble e2 contains func1, func2, and func3, while ensemble e3 contains just func3.

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

ensemble-pkg-0.0.2.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

ensemble_pkg-0.0.2-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file ensemble-pkg-0.0.2.tar.gz.

File metadata

  • Download URL: ensemble-pkg-0.0.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4

File hashes

Hashes for ensemble-pkg-0.0.2.tar.gz
Algorithm Hash digest
SHA256 662c2e5eb266903d57a92feb825c39a57bb5d3b1d852acf0e23618ae65a41663
MD5 7bb2aa31a01f96296c8d7d76149bca7f
BLAKE2b-256 ad70733204fd4d433444e3d327636d9c21a791f7aae7e3751c3168301762e322

See more details on using hashes here.

File details

Details for the file ensemble_pkg-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ensemble_pkg-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4

File hashes

Hashes for ensemble_pkg-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 403c0c1491d6da002a89fa414a91126e0f06b700554bccbb2aacc7d1b17e6f23
MD5 1c1a7fdb7f023c48579ec35dceffdfe5
BLAKE2b-256 71d72697dd49dcb199270bd10e12c50dfa0973ab9b1f3b0c1b365eb3e540a076

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