docs/en/datasets/semantic/cityscapes8.md
The Ultralytics Cityscapes8 dataset is a compact semantic segmentation dataset with 8 images sampled from the Cityscapes dataset: 4 for training and 4 for validation. It is designed for rapid testing, debugging, and experimentation with YOLO semantic segmentation models and training pipelines. Its urban-scene content provides a useful pipeline check before scaling to the full Cityscapes dataset.
Cityscapes8 uses the same 19 evaluation classes and the same label_mapping behavior as the full Cityscapes dataset, and is fully compatible with YOLO26 semantic segmentation workflows.
!!! note
Cityscapes8 is for pipeline testing only, not benchmarking — its 8 images are too few for a meaningful mIoU comparison. Use the full [Cityscapes](cityscapes.md) validation set for representative results.
Cityscapes8 mirrors the full dataset's layout, without a test split:
cityscapes8/
├── images/
│ ├── train/ # 4 images
│ └── val/ # 4 images
└── masks/
├── train/ # 4 single-channel PNG masks
└── val/ # 4 single-channel PNG masks
Masks are paired with images via the masks_dir: masks field, and label_mapping converts source Cityscapes label IDs into the 19 contiguous train IDs described in the full Cityscapes dataset structure.
Explore Cityscapes8 on Ultralytics Platform to browse every image with its segmentation masks and clone it to train in the cloud.
The Cityscapes8 dataset configuration is defined in a dataset YAML file, which specifies dataset paths, class names, and other essential metadata. You can review the official cityscapes8.yaml file in the Ultralytics GitHub repository. The YAML includes a download URL for the small packaged subset.
!!! example "ultralytics/cfg/datasets/cityscapes8.yaml"
```yaml
--8<-- "ultralytics/cfg/datasets/cityscapes8.yaml"
```
To train a YOLO26n-sem model on the Cityscapes8 dataset for 100 epochs with an image size of 1024, use the following examples. For a full list of training options, see the YOLO Training documentation.
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a pretrained YOLO26n-sem model
model = YOLO("yolo26n-sem.pt")
# Train the model on Cityscapes8
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)
```
=== "CLI"
```bash
# Train YOLO26n-sem on Cityscapes8 using the command line
yolo semantic train data=cityscapes8.yaml model=yolo26n-sem.pt epochs=100 imgsz=1024
```
Cityscapes8 is sampled from Cityscapes, which is released under a custom non-commercial license — see the full Cityscapes dataset page for details.
If you use the Cityscapes dataset in your research or development, please cite the following paper:
!!! quote ""
=== "BibTeX"
```bibtex
@inproceedings{Cordts2016Cityscapes,
title={The Cityscapes Dataset for Semantic Urban Scene Understanding},
author={Cordts, Marius and Omran, Mohamed and Ramos, Sebastian and Rehfeld, Timo and Enzweiler, Markus and Benenson, Rodrigo and Franke, Uwe and Roth, Stefan and Schiele, Bernt},
booktitle={Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2016}
}
```
Special thanks to the Cityscapes team for their ongoing contributions to the autonomous driving and computer vision communities.
The Ultralytics Cityscapes8 dataset is designed for rapid testing and debugging of semantic segmentation models. With only 8 images (4 for training, 4 for validation), it is ideal for verifying YOLO semantic segmentation pipelines, including mask loading, augmentations, validation, and export paths, before scaling to the full Cityscapes dataset. Explore the Cityscapes8 YAML configuration for more details.
Cityscapes8 samples 8 images (4 train, 4 val) from Cityscapes' 2,975-training/500-validation split, using the same 19 classes and label_mapping, so a pipeline that runs on Cityscapes8 runs unmodified on the full dataset — just point data= at cityscapes.yaml instead of cityscapes8.yaml. Unlike the full dataset, Cityscapes8 has no manual-download step and no test split.
You can train a YOLO26 semantic segmentation model on Cityscapes8 using either Python or the CLI:
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a pretrained YOLO26n-sem model
model = YOLO("yolo26n-sem.pt")
# Train the model on Cityscapes8
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)
```
=== "CLI"
```bash
# Train YOLO26n-sem on Cityscapes8 using the command line
yolo semantic train data=cityscapes8.yaml model=yolo26n-sem.pt epochs=100 imgsz=1024
```
For additional training options, refer to the YOLO Training documentation.
No. Cityscapes8 is too small for meaningful model comparison and is intended for training and evaluation pipeline checks. Use the full Cityscapes validation set when you need representative benchmark results for semantic segmentation.