Trainer

[Github Code]

The lightning trainer abstracts best practices for running a training, val, test routine. It calls parts of your model when it wants to hand over full control and otherwise makes training assumptions which are now standard practice in AI research.

This is the basic use of the trainer:

from pytorch_lightning import Trainer

model = LightningTemplate()

trainer = Trainer()
trainer.fit(model)

But of course the fun is in all the advanced things it can do:

Training loop

Validation loop

  • Display metrics in progress bar
  • Set how much of the validation set to check (1-100%)
  • Set validation check frequency within 1 training epoch (1-100%)
  • validation_step function
  • Why does validation run first for 5 steps?

Distributed training

  • Single-gpu
  • Multi-gpu
  • Multi-node
  • 16-bit mixed precision

Checkpointing

  • Model saving
  • Model loading

Computing cluster (SLURM)

  • Automatic checkpointing
  • Automatic saving, loading
  • Running grid search on a cluster
  • Walltime auto-resubmit