Kaggle Humpback whale identification: 2xGPU Data augmentation + FP16 mixed precision training
The challenge if you choose to accept it, within Happywhale database of 25000 images of whale flukes, identify the 3000+ whales that appear 1, 2 or 3 times.
For example here are 2 different images with the same whale
And here is a sample of 10 whale's flukes we had to work with
Disclaimer, the code is a baseline setup code with a low mAP@5 score of 0.30.
This is an example of how to use Nvidia DALI for pure GPU data augmentation and Nvidia APEx for multi-precision training (FP16+FP32) on a 2x2080Ti setup with PyTorch DataParallel
. (Note: Nvidia deprecated the APEx API I was using, replacement is straightforward)
Versions (version.release.commithash):
For Archlinux users, PKGBUILDs of my data science environment are available in my Data Science repo.
This setup avoids being bottlenecked on CPU data augmentation in many cases when using "simple" networks like ResNet50.
Furthermore, you will find an pure PyTorch to FastAI and Leslie Smith super-convergence and learning rate finder. FastAI is a tremendous effort to make deep learning best practice at your fingertips, however you lose some flexibility on models, logging and other utilities that would be useful in a competitive or production setup.
Lastly but not least, you will find several papers on identification tasks (commonly called Re-Id) which goes into deep details into various techniques for similarity learning like Siamese networks, Triplet Loss, re-identification networks, figure-of-merit learning.
Bonus: I'm pretty confident I've implemented the fastest mAP@5 function in Python + Deep Learning library.
Learning similarity, Metric learning, Low-shot learning, One-shot learning:
Matching network: https://arxiv.org/abs/1606.04080
Re-Identification networks
Meta learning: https://openreview.net/pdf?id=rJY0-Kcll
Neural Turing Machine
Unsupervised pretraining: http://www.jmlr.org/papers/volume11/erhan10a/erhan10a.pdf
Multi stage with a segmentation/Region Proposal network and then a predictor on the crops
Training from Scratch: https://arxiv.org/pdf/1811.08883.pdf
The rationale is to compare our upper bound with an approximation of the ranking score to assess whether the approximation provides any benefit. The basic idea is to perform a direct gradient descent optimization on a smoothed version of the NDCG measure