A smaller subset of 10 easily classified classes from Imagenet, and a little more French

Overview

Imagenette

🎶 Imagenette, gentille imagenette,

Imagenette, je te plumerai. 🎶

(Imagenette theme song thanks to Samuel Finlayson)


NB:

  • Versions of Imagenette and Imagewoof with noisy labels are now available as CSV files that come with the dataset.
  • The Imagenette and Imagewoof datasets have recently (Dec 6 2019) changed. They now have a 70/30 train/valid split.
  • The old versions (which have a much smaller validation set) are still available with the same URLs, but the URLs below point to the new versions.
  • We've also added the new Image网 dataset (see below for details). The leaderboards below been updated using the new datasets, using a strong. Can you beat it?...

The Datasets

Imagenette

Imagenette is a subset of 10 easily classified classes from Imagenet (tench, English springer, cassette player, chain saw, church, French horn, garbage truck, gas pump, golf ball, parachute).

'Imagenette' is pronounced just like 'Imagenet', except with a corny inauthentic French accent. If you've seen Peter Sellars in The Pink Panther, then think something like that. It's important to ham up the accent as much as possible, otherwise people might not be sure whether you're refering to "Imagenette" or "Imagenet". (Note to native French speakers: to avoid confusion, be sure to use a corny inauthentic American accent when saying "Imagenet". Think something like the philosophy restaurant skit from Monty Python's The Meaning of Life.)

The '320 px' and '160 px' versions have their shortest side resized to that size, with their aspect ratio maintained.

The dataset also comes with a CSV file with 1%, 5%, 25%, and 50% of the labels randomly changed to an incorrect label. More information about the noisy labels are provided in the "noisy_labels" folder. Leaderboards for 5% noise and 50% noise are maintained below.

Too easy for you? In that case, you might want to try Imagewoof.

Imagewoof

Imagewoof is a subset of 10 classes from Imagenet that aren't so easy to classify, since they're all dog breeds. The breeds are: Australian terrier, Border terrier, Samoyed, Beagle, Shih-Tzu, English foxhound, Rhodesian ridgeback, Dingo, Golden retriever, Old English sheepdog. (No we will not enter in to any discussion in to whether a dingo is in fact a dog. Any suggestions to the contrary are un-Australian. Thank you for your cooperation.)

The dataset also comes with a CSV file with 1%, 5%, 25%, and 50% of the labels randomly changed to an incorrect label. More information about the noisy labels are provided in the "noisy_labels" folder.

Imagewoof too easy for you too?!? Then get your hands on Image网.

Image网

Image网 is pronounced "Imagewang"; 网 means "net" in Chinese! Image网 contains Imagenette and Imagewoof combined, but with some twists that make it into a tricky semi-supervised unbalanced classification problem:

  • The validation set is the same as Imagewoof (i.e. 30% of Imagewoof images); there are no Imagenette images in the validation set (they're all in the training set)

  • Only 10% of Imagewoof images are in the training set!

  • The remaining are in the unsup ("unsupervised") directory, and you can not use their labels in training!

  • It's even hard to type and hard to say!

  • Full size download;

  • 320 px download;

  • 160 px download.

Why Imagenette?

I (Jeremy Howard, that is) mainly made Imagenette because I wanted a small vision dataset I could use to quickly see if my algorithm ideas might have a chance of working. They normally don't, but testing them on Imagenet takes a really long time for me to find that out, especially because I'm interested in algorithms that perform particularly well at the end of training.

But I think this can be a useful dataset for others as well.

Usage

If you are already using the fastai library, you can download and access these quickly with commands like:

path = untar_data(URLs.IMAGENETTE_160)

where path now stores the destination to ImageNette-160.

For researchers

  • Try to create a classifier that's as accurate as possible under various constraints (we'll keep leaderboards below, submit your PR with a link to your repo or gist!), such as:
    • Within a certain number of epochs: 5, 20, 40, 160
    • Within a certain budget on AWS or GCP (use spot or interruptible instances to save money): $0.05, $0.10, $0.25, $0.50, $1.00, $2.00
  • Experiment with other low resource problems like transfer learning from small datasets, using semi-supervised learning to help classify small datasets, etc
  • Test the impact of using different sized images, either separately, or together as part of training (i.e. progressive resizing)
  • Compare your algorithm on easy vs hard small datasets, which are otherwise very similar (Imagenette vs Imagewoof)
  • Ensure that you start from random weights - not from pretrained weights.

For students

  • Practice your modeling skills on a dataset that's very similar to Imagenet, but much less expensive to deal with
  • Do send me a PR with your other applications for this dataset!

Tips

  • Because there are only 10 categories, the usual "top 5 accuracy" isn't so interesting. So you should generally report top 1 accuracy when using Imagenette
  • The best approaches to 5 epoch training often don't scale well to more epochs
  • Data augmentation like mixup tends to only help for 80+ epochs

Leaderboard

Generally you'll see +/- 1% differences from run to run since it's quite a small validation set. So please only send in contributions that are higher than the reported accuracy >80% of the time. Here's the rules:

  • No inference time tricks, e.g. no: TTA, validation size > train size
  • Must start with random weights
  • Must be one of the size/#epoch combinations listed in the table
  • If you have the resources to do so, try to get an average of 5 runs, to get a stable comparison. Use the "# Runs" column to include this (note that train_imagenette.py provides a --runs flag to make this easy)
  • In the URL column include a link to a notebook, blog post, gist, or similar which explains what you did to get your result, and includes the code you used (or a link to it), including the exact commit, so that others can reproduce your result.

Imagenette Leaderboard

Size (px) Epochs URL Accuracy # Runs
128 5 fastai2 train_imagenette.py 2020-10 + MaxBlurPool + tuned hyperparams 87.43% 5, mean
128 20 fastai2 train_imagenette.py 2020-01 + MaxBlurPool 91.57% 5, mean
128 80 fastai2 train_imagenette.py 2020-01 93.55% 1
128 200 fastai2 train_imagenette.py 2020-01 94.24% 1
192 5 fastai2 train_imagenette.py 2020-01 + MaxBlurPool 86.76% 5, mean
192 20 fastai2 train_imagenette.py 2020-01 + MaxBlurPool 92.50% 5, mean
192 80 fastai2 train_imagenette.py 2020-01 94.50% 1
192 200 fastai2 train_imagenette.py 2020-01 95.03% 1
256 5 fastai2 train_imagenette.py 2020-01 + MaxBlurPool 86.85% 5, mean
256 20 fastai2 train_imagenette.py 2020-01 + MaxBlurPool 93.53% 5, mean
256 80 fastai2 train_imagenette.py 2020-01 94.90% 1
256 200 fastai2 train_imagenette.py 2020-01 95.11% 1

Imagenette w/Label Noise = 5%

Size (px) Epochs URL Accuracy # Runs
128 5 baseline 83.44% 1
128 20 baseline 89.53% 1
128 80 baseline 89.30% 1
128 200 baseline 90.04% 1
192 5 baseline 84.13% 1
192 20 baseline 90.65% 1
192 80 baseline 91.01% 1
192 200 baseline 91.08% 1
256 5 SESEMI 88.87% ± 0.67 5,mean±std
256 20 baseline 91.39% 1
256 80 SESEMI 92.95% ± 0.12 3,mean±std
256 200 SESEMI 93.96% ± 0.23 3,mean±std

Imagenette w/Label Noise = 50%

Size (px) Epochs URL Accuracy # Runs
128 5 baseline 66.60% 1
128 20 baseline 79.36% 1
128 80 baseline 50.80% 1
128 200 baseline 52.18% 1
192 5 baseline 67.54% 1
192 20 baseline 79.34% 1
192 80 baseline 52.51% 1
192 200 baseline 53.71% 1
256 5 SESEMI 76.72% ± 0.83 5,mean±std
256 20 baseline 79.21% 1
256 80 SESEMI 57.76% ± 0.39 3,mean±std
256 200 SESEMI 61.48% ± 0.33 3,mean±std

Imagewoof Leaderboard

Size (px) Epochs URL Accuracy # Runs
128 5 depthwise(x6) 76.61% 5, mean
128 20 depthwise(x4) 86.27% 5, mean
128 80 depthwise(x4) 87.83% 1
128 200 fastai2 train_imagenette.py 2020-01 87.20% 1
192 5 depthwise(x4) 81.15% 5, mean
192 20 depthwise(x4) 88.37% 5, mean
192 80 depthwise(x2) 90.30% 1
192 200 fastai2 train_imagenette.py 2020-01 89.54% 1
256 5 Resnet Trick + Mish + Sa + MaxBlurPool 78,84% 5, mean
256 20 Resnet Trick + Mish + Sa + MaxBlurPool 88,58% 5, mean
256 80 fastai2 train_imagenette.py 2020-01 90.48% 1
256 200 fastai2 train_imagenette.py 2020-01 90.38% 1

Image网 Leaderboard

Size (px) Epochs URL Accuracy # Runs
128 5 SwAV 72.94% 5,mean
128 20 SwAV 72.18% 3,mean
128 80 SwAV 69.53% 1
128 200 SwAV 66.04% 1
192 5 SwAV 77.07% 5,mean
192 20 SwAV 77.81% 3,mean
192 80 SwAV 74.9% 1
192 200 SwAV 71.77% 1
256 5 SwAV 79.56% 5,mean
256 20 SwAV 79.2% 3,mean
256 80 SESEMI 78.41% ± 0.39 5,mean±std
256 200 SESEMI 79.27% ± 0.20 3,mean±std
Comments
  • Noisy Imagenette/Woof Proposal

    Noisy Imagenette/Woof Proposal

    Noisy Imagenette/Woof

    Introduction

    Most of the time, dataset labels are actually quite noisy as the humans generating those labels are error-prone. This is especially the case for labels generated through crowdsourcing. Recently, there has been significant research in dealing with noisy labels in datasets and training deep learning models that are robust to noise (ex: here, here, here, here, here, and here). It would be great to be able to implement some of these techniques in fastai (some work has already been done on this front, ex: here) and test them on a benchmarking dataset.

    Proposal

    I propose to add to this dataset/repository a corrupted version of Imagenette and ImageWoof where the training labels are switched randomly at varying probabilities to simulate datasets with different levels of noise. This dataset is currently available here. The images themselves are the same as Imagenette, but the labels are instead provided in a CSV file. There are 4 noise levels: 1%, 5%, 25%, 50% noise. The generation of these labels are provided here. A baseline based on the original Imagenette baseline is provided as well.

    Note that in this imagenette repository there are currently 24 leaderboards (12 for Imagenette and 12 for ImageWoof). Since there are 4 noise levels, there is a total of 96 possible leaderboards. I have run my baseline for all 96 possibilities (done automatically on 4 TITAN RTXs with this bash script) and provided an extended leaderboard over here. I have also selected 16 leaderboards that I have kept on the README. It is up to the maintainers (Jeremy and Hamel) to decide which leaderboards they want to keep.

    What needs to be done

    These are the things I believe needs to be done for this dataset to be added to Imagenette:

    • [x] Add URLs for Noisy Imagenette/Woof (same as Imagenette but with the extra CSV file)
    • [x] Select the leaderboards to include
    • [x] Add the leaderboards to the repository README
    • [ ] Potentially add the label generation, benchmarks, extended LB in another folder on this repository? Alternatively, I could keep it hosted in my repository.

    @jph00 and @hamelsmu Please review my repository and let me know if you think there are any additional tasks that I would need to do.

    opened by tmabraham 24
  • Train- / Validation-Split of Imagenette

    Train- / Validation-Split of Imagenette

    I am using Imagenette for fine-tuning of an Imagenet pre-trained VGG-16 from the PyTorch model zoo. Is the validation-set of Imagenette build from the validation- / test-set of Imagenet? Or are there some Imagenet training examples in the Imagenette validation-set?

    Because after fine-tuning the pre-trained VGG for 1 epoch (on Imagenette), I reach a Top-1 Accuracy of 98.4% on the validation-set. Am I dealing with some data leakage here?

    opened by weberdavid 6
  • add results for BYOL imagewang with size=128

    add results for BYOL imagewang with size=128

    @jph00 Here I updated ImageWang leaderboard under size-128 category with BYOL results. I will continue to run the same notebook for sizes 192 and 224.

    opened by KeremTurgutlu 6
  • [WIP] Inpainting results on ImageWang dataset.

    [WIP] Inpainting results on ImageWang dataset.

    These results are based on self-supervised learning with a pretext task that performs 15 epochs of inpainting and a downstream task that performs image classification on the ImageWang /val files.

    The entire notebook is self-contained and should only depend on the user having installed fastai2

    I plan to run the same experiments on the 192 and 256 datasets, but haven't had a chance yet. I should have my results by the end of the week, so we can wait until then to merge if you'd like.

    opened by JoshVarty 6
  • Noisy imagenette more info in new folder

    Noisy imagenette more info in new folder

    @hamelsmu: As we discussed on Discord, I have added a separate folder with more information about the dataset (label generation, extended LB).

    Should I also edit the Imagenette README mentioning the update to the Imagenette dataset and introducing the noisy Imagenette dataset/LB? Or will that be done later?

    opened by tmabraham 5
  • Are the leaderboard entries using accuracy or top k accuracy?

    Are the leaderboard entries using accuracy or top k accuracy?

    I am asking because the entry:

    256 | 20 | fastai2 train_imagenette.py 2020-01 + MaxBlurPool | 93.53% | 5, mean

    Related to the following ipynb

    https://github.com/ducha-aiki/imagewoofv2-fastv2-maxpoolblur/blob/master/fastai2-imagenette-train-maxblurpool.ipynb

    Appears with accuracy "93.53%" in the leader board, but in the ipynb the accuracy never reaches 86%. What does reach >90% is the top_k_accuracy.

    opened by Mirandatz 4
  • New results with depthwise separable convolution

    New results with depthwise separable convolution

    Not exhaustive, but could serve as the new baseline.

    In particular,

    • depthwise (x4) should be used for "stem" as well, but I got "out of memory". When batch_size is lowered, training is a lot slower, and the result is not as good as it could be.
    • stem_size, currently at [3,32,64,64], may need to be optimized for this new design;
    • the 4 (sometimes called depth or channel multiplier) may not be optimal.
    opened by liuyao12 3
  • added code - mobile+adamw - 1epoch :87

    added code - mobile+adamw - 1epoch :87

    Hello, I tried using MobileNets(cited in the notebook) with the AdamW optimizer. And got around 86.96/87% in one epoch of 1cycle. (Mean of 3 runs) I added the notebook link too. Do have a look. The rules were 5 epochs so I ran it till there but I thought it would be worth sharing because of 1 epoch.

    This would be my first commit to fastai and I am excited. I really do hope this PR gets accepted. :) Have a great day! Stay safe

    opened by SubhadityaMukherjee 2
  • InPainting results has default pre-trained flag turned on

    InPainting results has default pre-trained flag turned on

    While trying to repro the in-painting notebook (really cool by the way), I noticed u-net is loading a frozen pre-trained imagenet stem: learn = unet_learner(dbunch, partial(m, sa=sa), opt_func=opt_func, metrics=[], loss_func=MSELoss())

    In this case, the default pretrained flag needs to be specifically turned off: https://github.com/fastai/fastai2/blob/master/fastai2/vision/learner.py#L183

    From my initial tests, it seems to matter.

    @JoshVarty

    opened by bearpelican 2
  • Question regarding the LICENSE

    Question regarding the LICENSE

    I have a question regarding the license of this. I see this is redistributed with Apache2.0 - I was wondering were you able to gain the rights for that subset of imagenet to be distributed under Apache2.0 or do the same license terms as per the regular imagenet apply?

    opened by philipp-eisen 2
  • Added results with maxpoolblur

    Added results with maxpoolblur

    I also run your standard training for 5 times each, see the notebook in the link. The previous PR was indeed on v1 of dataset. This one uses fastai v2 baseline I haven't updated your results though, because it would silly to have average over 5 runs for single entry only.

    @jph00

    The 20-ep results and bigger images are coming soon

    opened by ducha-aiki 2
  • Rating problems

    Rating problems

    Hi friends of Imagenette,

    I tried my luck with the evaluation on Imagenette with a modified Resnet 50 (more parameters) and I got these results: "model": "resnet50", "top1": 93.2739, "top1_err": 6.7261, "top5": 98.9299, "top5_err": 1.0701, "param_count": 30.23, "img_size": 224, "crop_pct": 0.875, "interpolation": "bicubic"

    What do you think? Very good or standard? (For a modiefied ResNet50 with Bottleneck arcitecture.)

    Would appreciate an opinion, thanks, André

    opened by AndreKelm 0
  • Imagewoof - Resnet18/34 Training

    Imagewoof - Resnet18/34 Training

    Hey, I am trying to produce a baseline model for imagewoof as it is hard to find a pretrained model. I trained both resnet-18/34 by using Adam optimizer. I have reached 81.55/82.62% for top-1 accuracy.

    I found some papers reporting that imagenette and imagewoof are 13k samples for training, where I expect this is would be the first version.

    1. Could anyone post a link for the 1st version of them? I want to reproduce their results.

    2. Could we use both datasets to fine-tune the hyperparameters for any training algorithm to generalize it on ImageNet?

    3. Is Imagenette and imagewoof training sets contains some samples from the training set? I checked the files content and I found some but I need someone to confirm this.

    image Ref: Data Efficient Stagewise Knowledge Distillation

    opened by AhmedHussKhalifa 1
Owner
fast.ai
fast.ai
Load What You Need: Smaller Multilingual Transformers for Pytorch and TensorFlow 2.0.

Smaller Multilingual Transformers This repository shares smaller versions of multilingual transformers that keep the same representations offered by t

Geotrend 79 Dec 28, 2022
Submodular Subset Selection for Active Domain Adaptation (ICCV 2021)

S3VAADA: Submodular Subset Selection for Virtual Adversarial Active Domain Adaptation ICCV 2021 Harsh Rangwani, Arihant Jain*, Sumukh K Aithal*, R. Ve

Video Analytics Lab -- IISc 13 Dec 28, 2022
Tracking Pipeline helps you to solve the tracking problem more easily

Tracking_Pipeline Tracking_Pipeline helps you to solve the tracking problem more easily I integrate detection algorithms like: Yolov5, Yolov4, YoloX,

VNOpenAI 32 Dec 21, 2022
Vanilla and Prototypical Networks with Random Weights for image classification on Omniglot and mini-ImageNet. Made with Python3.

vanilla-rw-protonets-project Vanilla Prototypical Networks and PNs with Random Weights for image classification on Omniglot and mini-ImageNet. Made wi

Giovani Candido 8 Aug 31, 2022
PyTorch implementation of CVPR 2020 paper (Reference-Based Sketch Image Colorization using Augmented-Self Reference and Dense Semantic Correspondence) and pre-trained model on ImageNet dataset

Reference-Based-Sketch-Image-Colorization-ImageNet This is a PyTorch implementation of CVPR 2020 paper (Reference-Based Sketch Image Colorization usin

Yuzhi ZHAO 11 Jul 28, 2022
A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

Tom 50 Dec 16, 2022
A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

A small demonstration of using WebDataset with ImageNet and PyTorch Lightning This is a small repo illustrating how to use WebDataset on ImageNet. usi

null 50 Dec 16, 2022
Code of PVTv2 is released! PVTv2 largely improves PVTv1 and works better than Swin Transformer with ImageNet-1K pre-training.

Updates (2020/06/21) Code of PVTv2 is released! PVTv2 largely improves PVTv1 and works better than Swin Transformer with ImageNet-1K pre-training. Pyr

null 1.3k Jan 4, 2023
A set of simple scripts to process the Imagenet-1K dataset as TFRecords and make index files for NVIDIA DALI.

Overview This is a set of simple scripts to process the Imagenet-1K dataset as TFRecords and make index files for NVIDIA DALI. Make TFRecords To run t

null 8 Nov 1, 2022
[ICLR 2021] "Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective" by Wuyang Chen, Xinyu Gong, Zhangyang Wang

Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective [PDF] Wuyang Chen, Xinyu Gong, Zhangyang Wang In ICLR 2

VITA 156 Nov 28, 2022
A PyTorch re-implementation of the paper 'Exploring Simple Siamese Representation Learning'. Reproduced the 67.8% Top1 Acc on ImageNet.

Exploring simple siamese representation learning This is a PyTorch re-implementation of the SimSiam paper on ImageNet dataset. The results match that

Taojiannan Yang 72 Nov 9, 2022
Code for the paper "A Study of Face Obfuscation in ImageNet"

A Study of Face Obfuscation in ImageNet Code for the paper: A Study of Face Obfuscation in ImageNet Kaiyu Yang, Jacqueline Yau, Li Fei-Fei, Jia Deng,

null 35 Oct 4, 2022
(ImageNet pretrained models) The official pytorch implemention of the TPAMI paper "Res2Net: A New Multi-scale Backbone Architecture"

Res2Net The official pytorch implemention of the paper "Res2Net: A New Multi-scale Backbone Architecture" Our paper is accepted by IEEE Transactions o

Res2Net Applications 928 Dec 29, 2022
Attack classification models with transferability, black-box attack; unrestricted adversarial attacks on imagenet

Attack classification models with transferability, black-box attack; unrestricted adversarial attacks on imagenet, CVPR2021 安全AI挑战者计划第六期:ImageNet无限制对抗攻击 决赛第四名(team name: Advers)

null 51 Dec 1, 2022
transfer attack; adversarial examples; black-box attack; unrestricted Adversarial Attacks on ImageNet; CVPR2021 天池黑盒竞赛

transfer_adv CVPR-2021 AIC-VI: unrestricted Adversarial Attacks on ImageNet CVPR2021 安全AI挑战者计划第六期赛道2:ImageNet无限制对抗攻击 介绍 : 深度神经网络已经在各种视觉识别问题上取得了最先进的性能。

null 25 Dec 8, 2022
Pytorch implementation of "Training a 85.4% Top-1 Accuracy Vision Transformer with 56M Parameters on ImageNet"

Token Labeling: Training an 85.4% Top-1 Accuracy Vision Transformer with 56M Parameters on ImageNet (arxiv) This is a Pytorch implementation of our te

蒋子航 383 Dec 27, 2022
Official Pytorch Implementation of: "ImageNet-21K Pretraining for the Masses"(2021) paper

ImageNet-21K Pretraining for the Masses Paper | Pretrained models Official PyTorch Implementation Tal Ridnik, Emanuel Ben-Baruch, Asaf Noy, Lihi Zelni

null 574 Jan 2, 2023
PyTorch implementation of PNASNet-5 on ImageNet

PNASNet.pytorch PyTorch implementation of PNASNet-5. Specifically, PyTorch code from this repository is adapted to completely match both my implemetat

Chenxi Liu 314 Nov 25, 2022