pytorch-retraining
Transfer Learning shootout for PyTorch's model zoo (torchvision).
Load any pretrained model with custom final layer (num_classes) from PyTorch's model zoo in one line
model_pretrained , diff = load_model_merged ('inception_v3' , num_classes )
Retrain minimal (as inferred on load) or a custom amount of layers on multiple GPUs. Optionally with Cyclical Learning Rate (Smith 2017) .
final_param_names = [d [0 ] for d in diff ]
stats = train_eval (model_pretrained , trainloader , testloader , final_params_names )
Chart training_time
, evaluation_time
(fps), top-1 accuracy
for varying levels of retraining depth (shallow, deep and from scratch)
Transfer learning on example dataset Bee vs Ants with 2xV100 GPUs
Results on more elaborate Dataset
num_classes = 23, slightly unbalanced, high variance in rotation and motion blur artifacts with 1xGTX1080Ti
Constant LR with momentum
Cyclical Learning Rate