Introduction

A generic project template based on pytorch lightning

Feature

  • All features from pytorch lightning and lightning CLI. Especially, experiment manager feature, auto implement multi-node, multi-device, multi-accelerator support, etc.
  • Powerful deep update feature for config file inherit to manage your config files in a more hierarchical way, see also recommand config file structure.
  • Multi and complex optimizers and lr_scheduler from CLI config support, see doc.
  • Powerful and flexible LightningModule and LightningDataModule base class.
  • Cross-validation support with only one argument you have to change.
  • Useful auto lr finder and auto batch size scaler.

Installation

See installation docs for details.

Usage

CLI

This project base on the lightning CLI, so it support all feature from pytorch lightning and lightning CLI, you can get a brief introduction from cli doc.

Create models and datasets

As pytorch lightning, we use LightningModule to implement the model and train, val and test loop, use LightningDataModule to implement dataset and dataloaders, for detail, see model doc and dataset doc

Config optimizers and lr schedulers

pytorch lightning do not support multi optimizers and lr schedulers from cli, we add this feature, see doc for detail.

Cross-validation

Set num_folds of trainer to a int bigger than one to start cross-validation, for details, see doc.

Config files

See config file structure, deep update, yaml with merge and json file