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:

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.