All Projects → leaderj1001 → Billion-scale-semi-supervised-learning

leaderj1001 / Billion-scale-semi-supervised-learning

Licence: other
Implementing Billion-scale semi-supervised learning for image classification using Pytorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Billion-scale-semi-supervised-learning

sinkhorn-label-allocation
Sinkhorn Label Allocation is a label assignment method for semi-supervised self-training algorithms. The SLA algorithm is described in full in this ICML 2021 paper: https://arxiv.org/abs/2102.08622.
Stars: ✭ 49 (-39.51%)
Mutual labels:  semi-supervised-learning, image-classification
metric-transfer.pytorch
Deep Metric Transfer for Label Propagation with Limited Annotated Data
Stars: ✭ 49 (-39.51%)
Mutual labels:  semi-supervised-learning, image-classification
CV
本仓库将使用Pytorch框架实现经典的图像分类网络、目标检测网络、图像分割网络,图像生成网络等,并会持续更新!!!
Stars: ✭ 72 (-11.11%)
Mutual labels:  image-classification
sesemi
supervised and semi-supervised image classification with self-supervision (Keras)
Stars: ✭ 43 (-46.91%)
Mutual labels:  semi-supervised-learning
vframe
VFRAME: Visual Forensics and Metadata Extraction
Stars: ✭ 41 (-49.38%)
Mutual labels:  image-classification
UnityProminentColor
Tool to gather main colors of an image using Unity.
Stars: ✭ 40 (-50.62%)
Mutual labels:  image-classification
Custom-CNN-based-Image-Classification-in-PyTorch
No description or website provided.
Stars: ✭ 41 (-49.38%)
Mutual labels:  image-classification
SimPLE
Code for the paper: "SimPLE: Similar Pseudo Label Exploitation for Semi-Supervised Classification"
Stars: ✭ 50 (-38.27%)
Mutual labels:  semi-supervised-learning
Resolvedor-de-Sudoku
Resolver Sudoku de genina.com
Stars: ✭ 17 (-79.01%)
Mutual labels:  image-classification
awesome-computer-vision-models
A list of popular deep learning models related to classification, segmentation and detection problems
Stars: ✭ 419 (+417.28%)
Mutual labels:  image-classification
memento
Organize your meme image cluster in a better format using OCR from the meme to sort them using tesseract along with editing memes by segmenting them using OpenCV within a directory
Stars: ✭ 70 (-13.58%)
Mutual labels:  image-classification
GPQ
Generalized Product Quantization Network For Semi-supervised Image Retrieval - CVPR 2020
Stars: ✭ 60 (-25.93%)
Mutual labels:  semi-supervised-learning
Kaggle-Cdiscount-Image-Classification-Challenge
No description or website provided.
Stars: ✭ 15 (-81.48%)
Mutual labels:  image-classification
food-detection-yolov5
🍔🍟🍗 Food analysis baseline with Theseus. Integrate object detection, image classification and multi-class semantic segmentation. 🍞🍖🍕
Stars: ✭ 68 (-16.05%)
Mutual labels:  image-classification
chitra
A multi-functional library for full-stack Deep Learning. Simplifies Model Building, API development, and Model Deployment.
Stars: ✭ 210 (+159.26%)
Mutual labels:  image-classification
Food-Categories-Classification
This repository contains the dataset and the source code for the classification of food categories from meal images.
Stars: ✭ 48 (-40.74%)
Mutual labels:  image-classification
Adversarial-Semisupervised-Semantic-Segmentation
Pytorch Implementation of "Adversarial Learning For Semi-Supervised Semantic Segmentation" for ICLR 2018 Reproducibility Challenge
Stars: ✭ 151 (+86.42%)
Mutual labels:  semi-supervised-learning
exponential-moving-average-normalization
PyTorch implementation of EMAN for self-supervised and semi-supervised learning: https://arxiv.org/abs/2101.08482
Stars: ✭ 76 (-6.17%)
Mutual labels:  semi-supervised-learning
rps-cv
A Rock-Paper-Scissors game using computer vision and machine learning on Raspberry Pi
Stars: ✭ 102 (+25.93%)
Mutual labels:  image-classification
imgpalr
R package for generating color palettes from arbitrary images.
Stars: ✭ 44 (-45.68%)
Mutual labels:  image-classification

Implementing Billion-scale semi-supervised learning for image classification using Pytorch

Network Architecture

캡처

  • Step 1:
    • We train on the labeled data to get an initial teacher model
  • Step 2:
    • For each class/label, we use the predictions of this teacher model to rank the unlabeled images and pick top-K images to construct a new training data
  • Step 3:
    • We use this data to train a student model, which typically differs from the teacher model: hence we can target to reduce the complexity at test time
  • Step 4:
    • finally, pre-trained student model is fine-tuned on the initial labeled data to circumvent potential labeling errors.

Usage

  • Step 1:
    • If there is a pretrained weight of the teacher network, go to step 2.
    • If you do not have pretrained weights, run the following command to train the teacher network.
    python main.py
    
  • Step 2:
    • Sampling unlabeled data through a pretrained teacher network.
    python make_sample_data.py
    
  • Step 3:
    • Students learn the student network using the data sampled in Step 2.
    python student_train.py
    
  • Step 4:
    • Finally, fine-tuning the CIFAR-100 data using the student network trained using unlabeled data in Step 3.
    python main.py --student-network True
    

Unlabeled Data

  • Image crawler

Experiments

  • In the paper, K=16k, P=10, Dataset=ImageNet, Unlabeled Data: 1,000,000,000 images.
  • However, we do not have many GPUs, so we are training at CIFAR-100.
    • Ours) K=1000, P=10, Dataset=CIFAR-100, Unlabeled Data: About 150,000 images.
Datasets Model Accuracy Epoch Training Time
CIFAR-100 ResNet-50 76.36% 91 3h 31m
CIFAR-100 ResNet-50, Semi-Supervisied learning(WORK IN PROCESS)
  • For CIFAR-100 data, the image size is too small, so the result is not good when the unlabeled data is reduced to (32, 32).
    • We will solve this problem !!

Requirements

  • tqdm==4.31.1
  • torch==1.0.1
  • opencv version: 4.1.0

Reference

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