Deep Representation One-class Classification (DROC).

This is not an officially supported Google product.

Tensorflow 2 implementation of the paper: Learning and Evaluating Representations for Deep One-class Classification published at ICLR 2021 as a conference paper by Kihyuk Sohn, Chun-Liang Li, Jinsung Yoon, Minho Jin, and Tomas Pfister.

This directory contains a two-stage framework for deep one-class classification example, which includes the self-supervised deep representation learning from one-class data, and a classifier using generative or discriminative models.


The requirements.txt includes all the dependencies for this project, and an example of install and run the project is given in

$sh deep_representation_one_class/

Download datasets

script/ includes an instruction how to prepare data for CatVsDog and CelebA datasets. For CatVsDog dataset, the data needs to be downloaded manually. Please uncomment line 2 to set DATA_DIR to download datasets before starting it.


The options for the experiments are specified thru the command line arguments. The detailed explanation can be found in Scripts for running experiments can be found

  • Rotation prediction: script/

  • Contrastive learning: script/

  • Contrastive learning with distribution augmentation: script/


After running, the evaluation results can be found in $MODEL_DIR/stats/summary.json, where MODEL_DIR is specified as model_dir of


[email protected], [email protected], [email protected], [email protected], [email protected]