Recording

Storing data
xmean,xstd = 0.28, 0.35
@inplace
def transformi(b): b['image'] = [(TF.to_tensor(o)-xmean)/xstd for o in b['image']]

_dataset = sample_dataset_dict(load_dataset('fashion_mnist').with_transform(transformi))
100%|██████████| 2/2 [00:00<00:00, 354.55it/s]
dls = DataLoaders.from_dataset_dict(_dataset, 256, num_workers=4)

Core


source

MetricsCB

 MetricsCB (**metrics)

Callback to track train/valid loss + metrics

trainer = Trainer(dls,
                  nn.CrossEntropyLoss(), 
                  torch.optim.Adam, 
                  get_model_conv(), 
                  callbacks=[BasicTrainCB(),MetricsCB(accuracy=MulticlassAccuracy()), DeviceCB()])
trainer.fit()
fc.test_eq(pd.DataFrame(trainer.MetricsCB.losses_epoch).shape,(3,2))
fc.test_eq(pd.DataFrame(trainer.MetricsCB.metrics_epoch).shape,(3,1))
fc.test_eq(pd.DataFrame(trainer.MetricsCB.losses_batch).shape,(9,2))

source

ProgressCB

 ProgressCB ()

Callback to display progress while training

trainer = Trainer(dls,
                  nn.CrossEntropyLoss(), 
                  torch.optim.Adam, 
                  get_model_conv(), 
                  callbacks=[BasicTrainCB(),MetricsCB(accuracy=MulticlassAccuracy()), DeviceCB(),OneBatchCB(),ProgressCB()])
trainer.fit()
0.00% [0/3 00:00<?]
0.00% [0/235 00:00<? Training]