All Projects → weiaicunzai → Bag_of_tricks_for_image_classification_with_convolutional_neural_networks

weiaicunzai / Bag_of_tricks_for_image_classification_with_convolutional_neural_networks

experiments on Paper <Bag of Tricks for Image Classification with Convolutional Neural Networks> and other useful tricks to improve CNN acc

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Bag of tricks for image classification with convolutional neural networks

Artificio
Deep Learning Computer Vision Algorithms for Real-World Use
Stars: ✭ 326 (-32.92%)
Mutual labels:  image-classification
Rmdl
RMDL: Random Multimodel Deep Learning for Classification
Stars: ✭ 375 (-22.84%)
Mutual labels:  image-classification
Neural Backed Decision Trees
Making decision trees competitive with neural networks on CIFAR10, CIFAR100, TinyImagenet200, Imagenet
Stars: ✭ 411 (-15.43%)
Mutual labels:  image-classification
Rexnet
Official Pytorch implementation of ReXNet (Rank eXpansion Network) with pretrained models
Stars: ✭ 319 (-34.36%)
Mutual labels:  image-classification
Trashnet
Dataset of images of trash; Torch-based CNN for garbage image classification
Stars: ✭ 368 (-24.28%)
Mutual labels:  image-classification
Pytorch classification
利用pytorch实现图像分类的一个完整的代码,训练,预测,TTA,模型融合,模型部署,cnn提取特征,svm或者随机森林等进行分类,模型蒸馏,一个完整的代码
Stars: ✭ 395 (-18.72%)
Mutual labels:  image-classification
Medpy
Medical image processing in Python
Stars: ✭ 321 (-33.95%)
Mutual labels:  image-classification
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (-7%)
Mutual labels:  image-classification
Basic cnns tensorflow2
A tensorflow2 implementation of some basic CNNs(MobileNetV1/V2/V3, EfficientNet, ResNeXt, InceptionV4, InceptionResNetV1/V2, SENet, SqueezeNet, DenseNet, ShuffleNetV2, ResNet).
Stars: ✭ 374 (-23.05%)
Mutual labels:  image-classification
Metaoptnet
Meta-Learning with Differentiable Convex Optimization (CVPR 2019 Oral)
Stars: ✭ 412 (-15.23%)
Mutual labels:  image-classification
Rectlabel Support
RectLabel - An image annotation tool to label images for bounding box object detection and segmentation.
Stars: ✭ 338 (-30.45%)
Mutual labels:  image-classification
Sianet
An easy to use C# deep learning library with CUDA/OpenCL support
Stars: ✭ 353 (-27.37%)
Mutual labels:  image-classification
Computer Vision
Programming Assignments and Lectures for Stanford's CS 231: Convolutional Neural Networks for Visual Recognition
Stars: ✭ 408 (-16.05%)
Mutual labels:  image-classification
Face recognition
🍎 My own face recognition with deep neural networks.
Stars: ✭ 328 (-32.51%)
Mutual labels:  image-classification
Tfclassifier
Tensorflow based training and classification scripts for text, images, etc
Stars: ✭ 441 (-9.26%)
Mutual labels:  image-classification
Involution
[CVPR 2021] Involution: Inverting the Inherence of Convolution for Visual Recognition, a brand new neural operator
Stars: ✭ 252 (-48.15%)
Mutual labels:  image-classification
Activation Visualization Histogram
Compare SELUs (scaled exponential linear units) with other activations on MNIST, CIFAR10, etc.
Stars: ✭ 377 (-22.43%)
Mutual labels:  image-classification
Pba
Efficient Learning of Augmentation Policy Schedules
Stars: ✭ 461 (-5.14%)
Mutual labels:  image-classification
Seefood
Inspired by HBO's Silicon Valley: SeeFood is an iOS app that uses CoreML to detect various dishes
Stars: ✭ 445 (-8.44%)
Mutual labels:  image-classification
Bottleneck Transformer Pytorch
Implementation of Bottleneck Transformer in Pytorch
Stars: ✭ 408 (-16.05%)
Mutual labels:  image-classification

Bag of Tricks for Image Classification with Convolutional Neural Networks

This repo was inspired by Paper Bag of Tricks for Image Classification with Convolutional Neural Networks

I would test popular training tricks as many as I can for improving image classification accuarcy, feel free to leave a comment about the tricks you want me to test(please write the referenced paper along with the tricks)

hardware

Using 4 Tesla P40 to run the experiments

dataset

I will use CUB_200_2011 dataset instead of ImageNet, just for simplicity, this is a fine-grained image classification dataset, which contains 200 birds categlories, 5K+ training images, and 5K+ test images.The state of the art acc on vgg16 is around 73%(please correct me if I was wrong).You could easily change it to the ones you like: Stanford Dogs, Stanford Cars. Or even ImageNet.

network

Use a VGG16 network to test my tricks, also for simplicity reasons, since VGG16 is easy to implement. I'm considering switch to AlexNet, to see how powerful these tricks are.

tricks

tricks I've tested, some of them were from the Paper Bag of Tricks for Image Classification with Convolutional Neural Networks :

trick referenced paper
xavier init Understanding the difficulty of training deep feedforward neural networks
warmup training Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
no bias decay Highly Scalable Deep Learning Training System with Mixed-Precision: Training ImageNet in Four Minutes
label smoothing Rethinking the inception architecture for computer vision)
random erasing Random Erasing Data Augmentation
cutout Improved Regularization of Convolutional Neural Networks with Cutout
linear scaling learning rate Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
cosine learning rate decay SGDR: Stochastic Gradient Descent with Warm Restarts

and more to come......

result

baseline(training from sctrach, no ImageNet pretrain weights are used):

vgg16 64.60% on CUB_200_2011 dataset, lr=0.01, batchsize=64

effects of stacking tricks

trick acc
baseline 64.60%
+xavier init and warmup training 66.07%
+no bias decay 70.14%
+label smoothing 71.20%
+random erasing does not work, drops about 4 points
+linear scaling learning rate(batchsize 256, lr 0.04) 71.21%
+cutout does not work, drops about 1 point
+cosine learning rate decay does not work, drops about 1 point
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].