I’ve published my PyTorch code for Amazon competition on GitHub 127.
You will find:

Using weighted loss function 64
Logging your experiment 50

Composing data augmentations 46, also here 17. Note use Pillow-SIMD 24 instead of PIL/Pillow. It is even faster than OpenCV
Loading from a CSV that contains image path - 61 lines yeah 44

Equivalent in Keras - 216 lines ugh 16. Note: so much lines were needed because by default in Keras you either have the data augmentation with ImageDataGenerator or lazy loading of images with “flow_from_directory” and there is no flow_from_csv
Model finetuning with custom PyCaffe weights 7
Train_test_split, PyTorch version 47 and Keras version 9

Weighted sampling training so that the model view rare cases more often 38
Custom Sampler creation, example for the balanced sampler 58
Saving snapshots each epoch 20
Loading the best snapshot for prediction 10

Failed Word embeddings experiments 3 to combine image and text data 1

Combined weighted loss function (softmax for unique weather tags, BCE for multilabel tags) 6

Selecting the best F2-threshold 12 via stochastic search at the end of each epoch to maximize validation score 3. This is then saved along model parameter.
CNN-RNN combination (work in progress) 25