Luigi workflows for training and evaluating fairly complex Trigger Primitive Generator Autoencoder models
This repository contains relatively generic workflows written in Python via the great Luigi
library. These so-called pipelines should help to streamline the development process of model architectures and trainings of a complex model. The workflows are designed in a flexible manner to allow for:
- Training multi-stage models, either freely or for specified stages at a time.
- Either train from scratch or preload weights to any submodel.
- Allow training on multiple objectives with specified "objective weight".
- Allow data preprocessing before model training in various ways.
- Generate unique training/model IDs for storing weights and, if desired, continue training at a later point.
- Generate live training statistics per epoch via Tensorboard to monitor user-defined performance plots.
- Allow network training in parallel on all available GPUs.
- Allow stage-wise training by piping training tasks together.
Furthermore, this repository also contains predefined models as a starting point for exploration. These models are written in an Object-oriented way which allows easy composition to train on more than one task.