/PyTorch-Image-Retrieval

A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).

Primary LanguagePythonMIT LicenseMIT

PyTorch Image Retrieval

A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).

Loss functions

We implemented loss functions to train the network for image retrieval.
Batch sampler for the loss function borrowed from here.

  • N-pair Loss (NIPS 2016): Sohn, Kihyuk. "Improved Deep Metric Learning with Multi-class N-pair Loss Objective," Advances in Neural Information Processing Systems. 2016.
  • Angular Loss (ICCV 2017): Wang, Jian. "Deep Metric Learning with Angular Loss," ICCV, 2017

Self-attention module

We attached the self-attention module of the Self-Attention GAN to conventional classification networks (e.g. DenseNet, ResNet, or SENet).
Implementation of the module borrowed from here.

Data augmentation

We adopted data augmentation techniques used in Single Shot MultiBox Detector.

Post processing

We utilized the following post-processing techniques in the inference phase.