Runner — an abstraction that knows how to run an experiment. It contains all the logic of how to work with your model per- stage, epoch, and batch.
From my experience, deep learning experiments follow the same for-loop (how to run):
for stage in experiment.stages: for epoch in stage.epochs: for loader in epoch.loaders: for batch in loader: handle_batch(batch)
The only thing that we want to change in these pipelines for new data/model is batch-handler. This is exactly what our Runner is doing – it goes through stages and runs a common train-loop + extra tricks for reproducibility.
If you haven’t found the answer for your question, feel free to join our slack for the discussion.