This module contains a script to train a model.

Train a Model on Data Split

timm_or_fastai_arch[source]

timm_or_fastai_arch(arch:str)

Check if arch is a fast.ai or timm architecture and return appropriate functions.

train[source]

train(data_path:Path, epochs:int=1, lr:Union[float, str]=0.0003, frz:int=1, pre:int=800, re:int=256, bs:int=200, fold:int=4, smooth:bool=False, arch:str='resnet18', dump:bool=False, log:bool=False, mixup:float=0.0, fp16:bool=False, dls:DataLoaders=None, save:bool=False, pseudo:Path=None)

"Train a learner on training CSV (w/folds) at data_path.

Train Using Cross-Validation

softmax_RocAuc[source]

softmax_RocAuc(logits, labels)

Compute RocAuc, first taking softmax of logits.

train_cv[source]

train_cv(path:"Path to data dir", epochs:"Number of unfrozen epochs"=1, lr:"Initial learning rate"=0.0003, frz:"Number of frozen epochs"=1, pre:"Image presize"=(682, 1024), re:"Image resize"=256, bs:"Batch size"=256, smooth:"Label smoothing?"=False, arch:"Architecture"='resnet18', dump:"Don't train, just print model"=False, log:"Log w/ W&B"=False, save:"Save model based on RocAuc"=False, mixup:"Mixup (0.4 is good)"=0.0, tta:"Test-time augmentation"=False, fp16:"Mixed-precision training"=False, do_eval:"Evaluate model and save predictions CSV"=False, val_fold:"Don't do cross-validation, just do 1 fold"=None, pseudo:"Path to pseudo labels to train on"=None, export:"Export learner(s) to export_valon{fold}.pkl"=False)

Train models using 5-fold cross-validation.

scores = np.ones((5, 4))
scores.mean(0)
array([1., 1., 1., 1.])