All Projects → ZHKKKe → DualStudent

ZHKKKe / DualStudent

Licence: other
Code for Paper ''Dual Student: Breaking the Limits of the Teacher in Semi-Supervised Learning'' [ICCV 2019]

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to DualStudent

semi-supervised-paper-implementation
Reproduce some methods in semi-supervised papers.
Stars: ✭ 35 (-66.98%)
Mutual labels:  semi-supervised-learning, pytorch-implementation
TA3N
[ICCV 2019 Oral] TA3N: https://github.com/cmhungsteve/TA3N (Most updated repo)
Stars: ✭ 45 (-57.55%)
Mutual labels:  domain-adaptation, iccv2019
SHOT-plus
code for our TPAMI 2021 paper "Source Data-absent Unsupervised Domain Adaptation through Hypothesis Transfer and Labeling Transfer"
Stars: ✭ 46 (-56.6%)
Mutual labels:  semi-supervised-learning, domain-adaptation
DCAN
[AAAI 2020] Code release for "Domain Conditioned Adaptation Network" https://arxiv.org/abs/2005.06717
Stars: ✭ 27 (-74.53%)
Mutual labels:  domain-adaptation, pytorch-implementation
semi-memory
Tensorflow Implementation on Paper [ECCV2018]Semi-Supervised Deep Learning with Memory
Stars: ✭ 49 (-53.77%)
Mutual labels:  semi-supervised-learning
Magic-VNet
VNet for 3d volume segmentation
Stars: ✭ 45 (-57.55%)
Mutual labels:  pytorch-implementation
seededlda
Semisupervided LDA for theory-driven text analysis
Stars: ✭ 46 (-56.6%)
Mutual labels:  semi-supervised-learning
Deep-MVLM
A tool for precisely placing 3D landmarks on 3D facial scans based on the paper "Multi-view Consensus CNN for 3D Facial Landmark Placement"
Stars: ✭ 71 (-33.02%)
Mutual labels:  pytorch-implementation
pyprophet
PyProphet: Semi-supervised learning and scoring of OpenSWATH results.
Stars: ✭ 23 (-78.3%)
Mutual labels:  semi-supervised-learning
ViT-V-Net for 3D Image Registration Pytorch
Vision Transformer for 3D medical image registration (Pytorch).
Stars: ✭ 169 (+59.43%)
Mutual labels:  pytorch-implementation
EC-GAN
EC-GAN: Low-Sample Classification using Semi-Supervised Algorithms and GANs (AAAI 2021)
Stars: ✭ 29 (-72.64%)
Mutual labels:  semi-supervised-learning
PyTorch
An open source deep learning platform that provides a seamless path from research prototyping to production deployment
Stars: ✭ 17 (-83.96%)
Mutual labels:  pytorch-implementation
ETCI-2021-Competition-on-Flood-Detection
Experiments on Flood Segmentation on Sentinel-1 SAR Imagery with Cyclical Pseudo Labeling and Noisy Student Training
Stars: ✭ 102 (-3.77%)
Mutual labels:  semi-supervised-learning
depth-map-prediction
Pytorch Implementation of Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
Stars: ✭ 78 (-26.42%)
Mutual labels:  pytorch-implementation
AdaSpeech
AdaSpeech: Adaptive Text to Speech for Custom Voice
Stars: ✭ 108 (+1.89%)
Mutual labels:  pytorch-implementation
nvae
An unofficial toy implementation for NVAE 《A Deep Hierarchical Variational Autoencoder》
Stars: ✭ 83 (-21.7%)
Mutual labels:  pytorch-implementation
DocTr
The official code for “DocTr: Document Image Transformer for Geometric Unwarping and Illumination Correction”, ACM MM, Oral Paper, 2021.
Stars: ✭ 202 (+90.57%)
Mutual labels:  pytorch-implementation
pytorch-domain-adaptation
Unofficial pytorch implementation of algorithms for domain adaptation
Stars: ✭ 24 (-77.36%)
Mutual labels:  domain-adaptation
FixBi
FixBi: Bridging Domain Spaces for Unsupervised Domain Adaptation (CVPR 2021)
Stars: ✭ 48 (-54.72%)
Mutual labels:  domain-adaptation
CAC-UNet-DigestPath2019
1st to MICCAI DigestPath2019 challenge (https://digestpath2019.grand-challenge.org/Home/) on colonoscopy tissue segmentation and classification task. (MICCAI 2019) https://teacher.bupt.edu.cn/zhuchuang/en/index.htm
Stars: ✭ 83 (-21.7%)
Mutual labels:  domain-adaptation

Dual Student: Breaking the Limits of the Teacher in Semi-Supervised Learning

This is the PyTorch implementation for our paper Dual Student: Breaking the Limits of the Teacher in Semi-supervised Learning. The style of code follows the official implementation of Mean Teacher (Code from their repository is inside the folder ./third_party/mean_teacher).

Updates

[May 15, 2020] Update code of 'Multiple Student for semi-supervised learning on CIFAR benchmark'.

[Mar 27, 2020] Update log storage function, which allows the log to be stored via logging.FileHandler.

[Nov 20, 2019] Update code of 'Dual Student for domain adaptation from USPS to MNIST'.

[Oct 30, 2019] Update ICCV 2019 poster.

[Sep 13, 2019] Update code of 'Dual Student for semi-supervised learning on CIFAR benchmark'.

Poster

DualStudent ICCV Poster

Preparation

This code runs on Python 3 with PyTorch 0.3.1. If you use Anaconda 3:

  1. Create a new python environment and switch to it:

    conda create -n dual_student python=3.5
    source activate dual_student
    
  2. Install PyTorch 0.3.1:

    conda install pytorch=0.3.1 torchvision cudaXX -c pytorch
    

    * Please replace ''cudaXX'' by your cuda version, e.g., ''cuda80'' for cuda 8.0.

  3. Install other dependencies:

    pip install numpy scipy pandas tqdm matplotlib
    
  4. Clone this repository by:

    git clone https://github.com/ZHKKKe/DualStudent.git
    

    * Line 258-341 in file ./dual_student.py is the code of stabilization constraint.

Experiments

Semi-Supervised Learning with Dual Student

Running on the CIFAR benchmark with 1 GPU:

  1. Switch to the project folder ./DualStudent and prepare the CIFAR dataset by following commands:

    ./third_party/data-local/bin/prepare_cifar10.sh
    ./third_party/data-local/bin/prepare_cifar100.sh
    
  2. We provide the pre-trained models for experiments CIFAR-10 with 1k labels and CIFAR-100 with 10k labels. Please download them from [link] and put them into ./checkpoints. Then, you can run:

    python -m scripts.ds_cifar10_1000l_cnn13
    python -m scripts.ds_cifar100_10000l_cnn13
    

    * Naming rule of script/model is ''[method]_[dataset]_[labels number]_[model archtecture]''.

  3. If you want to train models yourselves, please comment following two lines on scripts as:

    # 'resume'  : './checkpoints/xxx',
    # 'validation': True,
    

    Then, you can run:

    python -m scripts.ds_cifar10_1000l_cnn13
    python -m scripts.ds_cifar100_10000l_cnn13
    

Please use python dual_student.py --help to check command line arguments.

Domain Adaptation with Dual Student

In our paper, we also provide the result of USPS -> MNIST domain adaptation task. You can train the network to reproduce our result (or you can download the pre-trained model from [link] for validation):

  1. Download USPS dataset from [link] and decompress it into ./third_party/data-local/workdir/usps.

  2. Prepare USPS dataset and MNIST dataset by following commands:

    ./third_party/data-local/bin/prepare_usps.sh
    ./third_party/data-local/bin/prepare_mnist.sh
    
  3. Reproduce our domain adaptation result by running:

    python -m scripts.ds_usps_mnist_da
    

    * Naming rule of script/model is ''[method]_[source domain]_[target domain]_da''.

Semi-Supervised Learning with Multiple Student

Running on the CIFAR benchmark with 1 GPU:

  1. We provide the pre-trained model for experiment CIFAR-10 with 1k labels. Please download it from [link] and put it into ./checkpoints. Then, you can run:

    python -m scripts.ms_cifar10_1000l_cnn13
    

    * Naming rule of script/model is ''[method]_[dataset]_[labels number]_[model archtecture]''.

  2. If you want to train models yourselves, please comment following two lines on scripts as:

    # 'resume'  : './checkpoints/xxx',
    # 'validation': True,
    

    Then, you can run:

    python -m scripts.ms_cifar10_1000l_cnn13
    

Citation

If you use our method or code in your research, please cite:

@InProceedings{Ke_2019_ICCV,
  author = {Ke, Zhanghan and Wang, Daoye and Yan, Qiong and Ren, Jimmy and Lau, Rynson W.H.},
  title = {Dual Student: Breaking the Limits of the Teacher in Semi-Supervised Learning},
  booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
  month = {October},
  year = {2019}
}

Contact

If you have any questions, please free to contact me by [email protected].

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].