Skip to content

Barrage is an opinionated supervised deep learning tool built on top of TensorFlow 2.x designed to standardize and orchestrate the training and scoring of complicated models.

License

Notifications You must be signed in to change notification settings

briannemsick/barrage

Repository files navigation

Barrage

Version Python License Build Documentation Coverage Black

Barrage is an opinionated supervised deep learning tool built on top of TensorFlow 2.x designed to standardize and orchestrate the training and scoring of complicated models. Barrage is built around a JSON config and the TensorFlow 2.x library using the Tensorflow.Keras API.

Official documentation can be found at: https://barrage.readthedocs.io/

Barrage Logo

Guiding Principles

  1. Minimal Code: build well-tested, configurable, and reliable config recipes. Use custom code only when it is absolutely necessary.
  2. Component Reusability: decompose deep learning dataset processing into fundamental components (e.g. dataset loaders, data transformations, augmentation functions) to maximize reuse between models.
  3. Process Automation: best practices and artifacting are automatically configured (e.g. saving best checkpoint, creating TensorBoard, etc...) with defaults that can be adjusted in the config.
  4. Standardize API: takes an opinionated view and selects the production hardened variant of the many TensorFlow.Keras API choices (e.g. data type choices in model.fit).
  5. Cross Domain: handles single/multi input/output networks seamlessly across domains (e.g. Computer Vision, Natural Language Processing, Time Series, etc...).

Select Feature Highlights

  1. Single/multi input/output: flexible across many types of networks.
  2. Loading: dataset in memory, on disk, in cloud storage, etc ...
  3. Transforms: fit transforms on a first-pass of the training dataset with the ability to:
    1. pass transform params to network builder (e.g. compute vocabulary size -> embedding layer).
    2. apply transform at batch time (e.g. mean variance normalization to input).
    3. undo transform after scoring (e.g. undo mean variance normalization to output).
  4. Augmentation: chain augmentation functions.
  5. Sampling: change the number of times a sample is selected in an epoch.

As well as standard TensorFlow.Keras features such as metrics, sample weights, etc...

Installation

pip:

pip install barrage

GitHub source:

git clone https://github.com/briannemsick/barrage
cd barrage
python setup.py install

About

Barrage is an opinionated supervised deep learning tool built on top of TensorFlow 2.x designed to standardize and orchestrate the training and scoring of complicated models.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages