DeepTrain is founded on control and introspection: full knowledge and manipulation of the train state.
What does it do?¶
Abstract away boilerplate train loop and data loading code, without making it into a black box. Code is written intuitively and fully documented. Everything about the train state can be seen via dedicated attributes; which batch is being fit and when, how long until an epoch ends, intermediate metrics, etc.
DeepTrain is not a “wrapper” around TF; while currently only supporting TF, fitting and data logic is framework-agnostic.
When is it suitable (and not)?¶
Training few models thoroughly: closely tracking model and train attributes to debug performance and inform next steps.
DeepTrain is not for models that take under an hour to train, or for training hundreds of models at once.
- AutoData: need only path to directory, the rest is inferred (but can customize)
- Faster SSD loading: load larger batches to maximize read speed utility
- Flexible batch size: can differ from that of loaded files, will split/combine – ex
- Stateful timeseries: splits up a batch into windows, and
reset_states()(RNNs) at end – ex
- Iter-level preprocessor: pass batch & labels through
Preprocessor()before feeding to model – ex
- Loader function: define custom data loader for any file extension, handled by
- Preprocessing: batch-making and format conversion methods – docs
- Calibration: classifier prediction threshold; best batch subset selection (for e.g. ensembling) – docs
- Algorithms: convenience methods for object inspection & manipulation – docs
- Callbacks: reusable methods with other libraries supporting callbacks – docs
List not exhaustive; for application-specific features, see examples.