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.
Python
Branch: master
Clone or download

README.rst

Warning: TensorFlow 2.0 is not officially released yet, the first official release of barrage will be after TensorFlow 2.0 is released.

Barrage

Version Python License Build Coverage Documentation 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 learning rate scheduling, sample weights, etc...

Installation

pip:

# TensorFlow CPU
pip install barrage[tensorflow]

# TensorFlow GPU
pip install barrage[tensorflow-gpu]

GitHub source:

git clone https://github.com/briannemsick/barrage
cd barrage
python setup.py install
You can’t perform that action at this time.