/pt-dec

PyTorch implementation of DEC (Deep Embedding Clustering)

Primary LanguagePythonMIT LicenseMIT

pt-dec

Build Status codecov Codacy Badge

PyTorch implementation of a version of the Deep Embedded Clustering (DEC) algorithm. Compatible with PyTorch 1.0.0 and Python 3.6 or 3.7 with or without CUDA.

This follows (or attempts to; note this implementation is unofficial) the algorithm described in "Unsupervised Deep Embedding for Clustering Analysis" of Junyuan Xie, Ross Girshick, Ali Farhadi (https://arxiv.org/abs/1511.06335).

Examples

An example using MNIST data can be found in the examples/mnist/mnist.py which achieves around 85% accuracy.

Here is an example confusion matrix, true labels on y-axis and predicted labels on the x-axis.

Alt text

Usage

This is distributed as a Python package ptdec and can be installed with python setup.py install after installing ptsdae from https://github.com/vlukiyanov/pt-sdae. The PyTorch nn.Module class representing the DEC is DEC in ptdec.dec, while the train function from ptdec.model is used to train DEC.

Other implementations of DEC