All Projects → ZhiyuanDang → NNM

ZhiyuanDang / NNM

Licence: other
The PyTorch official implementation of the CVPR2021 Poster Paper NNM: Nearest Neighbor Matching for Deep Clustering.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to NNM

DESOM
🌐 Deep Embedded Self-Organizing Map: Joint Representation Learning and Self-Organization
Stars: ✭ 76 (+65.22%)
Mutual labels:  clustering
FixedEffectjlr
R interface for Fixed Effect Models
Stars: ✭ 20 (-56.52%)
Mutual labels:  clustering
EgoSplitting
A NetworkX implementation of "Ego-splitting Framework: from Non-Overlapping to Overlapping Clusters" (KDD 2017).
Stars: ✭ 78 (+69.57%)
Mutual labels:  clustering
ExpressionMatrix2
Software for exploration of gene expression data from single-cell RNA sequencing.
Stars: ✭ 29 (-36.96%)
Mutual labels:  clustering
TrajectoryTracking
Trajectory Tracking Project
Stars: ✭ 16 (-65.22%)
Mutual labels:  clustering
DBSCAN
c++ implementation of clustering by DBSCAN
Stars: ✭ 89 (+93.48%)
Mutual labels:  clustering
fsfc
Feature Selection for Clustering
Stars: ✭ 80 (+73.91%)
Mutual labels:  clustering
swanager
A high-level Docker Services management tool built on top of Swarm
Stars: ✭ 12 (-73.91%)
Mutual labels:  clustering
MAL-Map
Cluster and visualize relationships between anime on MyAnimeList
Stars: ✭ 201 (+336.96%)
Mutual labels:  clustering
kohonen-maps
Implementation of SOM and GSOM
Stars: ✭ 62 (+34.78%)
Mutual labels:  clustering
rabbitmq-peer-discovery-consul
Consul-based peer discovery backend for RabbitMQ 3.7.0+
Stars: ✭ 39 (-15.22%)
Mutual labels:  clustering
NNet
algorithm for study: multi-layer-perceptron, cluster-graph, cnn, rnn, restricted boltzmann machine, bayesian network
Stars: ✭ 24 (-47.83%)
Mutual labels:  clustering
text clustering
文本聚类(Kmeans、DBSCAN、LDA、Single-pass)
Stars: ✭ 230 (+400%)
Mutual labels:  clustering
clueminer
interactive clustering platform
Stars: ✭ 13 (-71.74%)
Mutual labels:  clustering
scSeqR
This package has migrated to https://github.com/rezakj/iCellR please use iCellR instead of scSeqR for more functionalities and updates.
Stars: ✭ 16 (-65.22%)
Mutual labels:  clustering
pypmc
Clustering with variational Bayes and population Monte Carlo
Stars: ✭ 46 (+0%)
Mutual labels:  clustering
rabbitmq-clusterer
This project is ABANDONWARE. Use https://www.rabbitmq.com/cluster-formation.html instead.
Stars: ✭ 72 (+56.52%)
Mutual labels:  clustering
snATAC
<<------ Use SnapATAC!!
Stars: ✭ 23 (-50%)
Mutual labels:  clustering
consul role
Ansible role to install Consul (cluster of) server/agent
Stars: ✭ 14 (-69.57%)
Mutual labels:  clustering
IntroduceToEclicpseVert.x
This repository contains the code of Vert.x examples contained in my articles published on platforms such as kodcu.com, medium, dzone. How to run each example is described in its readme file.
Stars: ✭ 27 (-41.3%)
Mutual labels:  clustering

NNM: Nearest Neighbor Matching for Deep Clustering.

Forked from SCAN (https://github.com/wvangansbeke/Unsupervised-Classification).

Introduction

The illustration of our idea. We propose to match more semantically nearest neighbors from between local (batch) and global (overall) level. Benefit from the dynamic updated deep features with iteration and epoch increases, we can construct more and more semantically confident sample pairs from samples and its neighbors.

Framework

Local Nearest Neighbor Matching

Global Nearest Neighbor Matching

For specifical loss, please refer paper and poster.

Main Results

Pre-Trained Models

Models Links
CIFAR-10 Google Drive
CIFAR-20 Google Drive
STL-10 Google Drive

Trained Models

Models ACC Links
CIFAR-10 0.8430 Google Drive
CIFAR-20 0.4773 Google Drive
STL-10 0.8084 Google Drive

Run

Requirements

Python 3.7 and Pytorch 1.4.0 are required. Please refer to requirements.yaml for more details.

Usages

Clone this repo: git clone https://github.com/ZhiyuanDang/NNM.git.

Download datasets: CIFAR-10/100, STL-10.

We can directly use the pre-text model from SCAN. Then, we only need to generate the neighbors by the code

python simclr.py --config_env configs/env.yml --config_exp configs/pretext/simclr_cifar10.yml.

Next, we run the clustering step (optional):

python scan.py --config_env configs/env.yml --config_exp configs/scan/scan_cifar10.yml --gpus 0 (--seed 1234).

Visualizing the top-k images is easily done by setting the --visualize_prototypes flag.

For example on cifar-10: python eval.py --config_exp configs/scan/scan_cifar10.yml --model $MODEL_PATH --visualize_prototypes.

And the Top-3 images is:

However, due to issues in SCAN, self-label is not suitable for NNM. Thus, we remove this file.

Citation

@InProceedings{Dang_2021_CVPR,
    author    = {Dang, Zhiyuan and Deng, Cheng and Yang, Xu and Wei, Kun and Huang, Heng},
    title     = {Nearest Neighbor Matching for Deep Clustering},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2021},
    pages     = {13693-13702}
}

Reference

SpCL (https://github.com/yxgeee/SpCL)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].