docs/en/datasets/classify/cifar100.md
The CIFAR-100 (Canadian Institute For Advanced Research) dataset is an image classification benchmark of 60,000 32x32 color images spread evenly across 100 fine-grained classes (600 images each), which are in turn grouped into 20 coarse superclasses. Created by Alex Krizhevsky, it ships with a predefined split of 50,000 training and 10,000 test images, making it the harder, more fine-grained sibling of the CIFAR-10 dataset.
<p align="center"> <iframe loading="lazy" width="720" height="405" src="https://www.youtube.com/embed/6bZeCs0xwO4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen> </iframe><strong>Watch:</strong> How to Train an <a href="https://www.ultralytics.com/glossary/image-classification">Image Classification</a> Model on CIFAR-100 using Ultralytics YOLO
</p>CIFAR-100 ships with an official, predefined split, so no automatic or manual partitioning is needed:
!!! note "Validation split"
CIFAR-100 has no separate validation folder, so Ultralytics uses the 10,000-image test set as the validation split during training by default. Training with `data="cifar100"` learns the 100 fine-grained classes.
CIFAR-100 is widely used to train and evaluate image classification models, from classic Convolutional Neural Networks (CNNs) and Support Vector Machines (SVMs) to modern deep architectures. Its 100 fine-grained classes and small image size make it a demanding benchmark for machine learning research, algorithm comparison, and computer vision experimentation.
Train a YOLO model on CIFAR-100 for 100 epochs at an image size of 32. For the full list of available arguments, see the Training page and the image classification task guide.
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="cifar100", epochs=100, imgsz=32)
```
=== "CLI"
```bash
# Start training from a pretrained *.pt model
yolo classify train data=cifar100 model=yolo26n-cls.pt epochs=100 imgsz=32
```
Sample images from the CIFAR-100 dataset:
The samples show the diversity of the objects in the CIFAR-100 dataset, underlining the value of a varied dataset for training robust image classification models.
If you use the CIFAR-100 dataset in your research or development work, please cite the following paper:
!!! quote ""
=== "BibTeX"
```bibtex
@TECHREPORT{Krizhevsky09learningmultiple,
author={Alex Krizhevsky},
title={Learning multiple layers of features from tiny images},
institution={},
year={2009}
}
```
We would like to acknowledge Alex Krizhevsky for creating and maintaining the CIFAR-100 dataset as a valuable resource for the machine learning and computer vision research community. For more information about the CIFAR-100 dataset and its creator, visit the CIFAR-100 dataset website.
The CIFAR-100 dataset is widely used to train and benchmark fine-grained image classification and object recognition models. It contains 60,000 32x32 color images across 100 classes grouped into 20 superclasses, making it a more challenging benchmark than CIFAR-10 for algorithms such as Convolutional Neural Networks (CNNs) and Support Vector Machines (SVMs), and for evaluating deep learning models built with Ultralytics YOLO.
To train an Ultralytics YOLO model on CIFAR-100, use the code snippets below. The dataset downloads automatically on first use. For a full list of arguments, see the model Training page.
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="cifar100", epochs=100, imgsz=32)
```
=== "CLI"
```bash
# Start training from a pretrained *.pt model
yolo classify train data=cifar100 model=yolo26n-cls.pt epochs=100 imgsz=32
```
CIFAR-100 has 100 fine-grained classes — such as apple, dolphin, maple tree, motorcycle, and rocket — with exactly 600 images each, for 60,000 images in total. These 100 classes are additionally grouped into 20 coarse superclasses (for example, the trees superclass covers maple, oak, palm, pine, and willow). Training with data="cifar100" uses the 100 fine-grained classes.
CIFAR-100 ships with a predefined split of 50,000 training images and 10,000 test images, with exactly 500 training and 100 test images per class. Unlike folder-based classification datasets that Ultralytics splits automatically, CIFAR-100's official partition is used as-is, and the test set serves as the validation split during training by default.
Yes. Ultralytics Platform lets you manage datasets, train image classification models, and deploy them without extensive coding. It is a convenient way to run CIFAR-100 experiments in the cloud, and you can explore more options in our classification datasets overview.