You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository is an implementation of Deep Metric Learning via Facility Location on tensorflow. We build this on Cifar100 and Densenet-40. This paper is available here. For the loss layer implementation, look at here. For the Densenet implementation, look at here.
@inproceedings{songCVPR17,
Author = {Hyun Oh Song and Stefanie Jegelka and Vivek Rathod and Kevin Murphy},
Title = {Deep Metric Learning via Facility Location},
Booktitle = {Computer Vision and Pattern Recognition (CVPR)},
Year = {2017}
}
Run pip install -r requirements.txt get required support.
Training Procedure
Modify metric_learning_densenet.py for training-params and densenet-params. We pick Cifar100 as our training data, because it's tiny, save GPU-memory (when batch size 64, it cost about 4.6G GPU-Memory) and good for doing research.
Run python metric_learning_densenet.py, the data_provider with automaticlly handle data download and process. After that, start Densenet-Cluster-loss training.
Download Downsampled Imagenet with size 32x32 from here. Modify metric_learning_densenet.py train on Imagenet.
Feature Extraction after Training
Modify metric_learning_densenet.py extract feature embeddings on cifar test set, the embeddings is saved with .npy format used for evaluation process.
Clustering and Retrieval Evaluation
Run python visualization/tsne.py can plot and save the cluster result on Cifar database.
Repository Information
Densenet tensorflow training code
Deep metric learning cluster loss code
Evaludation
NMI, Recall@K code
feature extraction code
feature visulization code (tSNE)
Dataset support
cifar-10
cifar-100
imagenet-32x32
About
This a an impletation of Deep Metric Learning via Facility Location on tensorflow