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/
- Minimal Code: build well-tested, configurable, and reliable config recipes. Use custom code only when it is absolutely necessary.
- Component Reusability: decompose deep learning dataset processing into fundamental components (e.g. dataset loaders, data transformations, augmentation functions) to maximize reuse between models.
- 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.
- 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). - Cross Domain: handles single/multi input/output networks seamlessly across domains (e.g. Computer Vision, Natural Language Processing, Time Series, etc...).
- Single/multi input/output: flexible across many types of networks.
- Loading: dataset in memory, on disk, in cloud storage, etc ...
- Transforms: fit transforms on a first-pass of the training dataset with the
ability to:
- pass transform params to network builder (e.g. compute vocabulary size -> embedding layer).
- apply transform at batch time (e.g. mean variance normalization to input).
- undo transform after scoring (e.g. undo mean variance normalization to output).
- Augmentation: chain augmentation functions.
- 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...
pip:
pip install barrage
GitHub source:
git clone https://github.com/briannemsick/barrage
cd barrage
python setup.py install