- Description:
A re-labeled version of CIFAR-100 with real human annotation errors. For every pair (image, label) in the original CIFAR-100 train set, it provides an additional label given by a real human annotator.
Source code:
tfds.image_classification.cifar100_n.Cifar100N
Versions:
1.0.0
: Initial release.1.0.1
(default): Fixed correspondence between annotations and images.
Download size:
160.71 MiB
Dataset size:
136.07 MiB
Manual download instructions: This dataset requires you to download the source data manually into
download_config.manual_dir
(defaults to~/tensorflow_datasets/downloads/manual/
):
Download 'side_info_cifar100N.csv', 'CIFAR-100_human_ordered.npy' and 'image_order_c100.npy' from https://github.com/UCSC-REAL/cifar-10-100n
Then convert 'CIFAR-100_human_ordered.npy' into a CSV file 'CIFAR-100_human_annotations.csv'. This can be done with the following code:
import numpy as np
from tensorflow_datasets.core.utils.lazy_imports_utils import pandas as pd
from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow as tf
human_labels_np_path = '<local_path>/CIFAR-100_human_ordered.npy'
human_labels_csv_path = '<local_path>/CIFAR-100_human_annotations.csv'
with tf.io.gfile.GFile(human_labels_np_path, "rb") as f:
human_annotations = np.load(f, allow_pickle=True)
df = pd.DataFrame(human_annotations[()])
with tf.io.gfile.GFile(human_labels_csv_path, "w") as f:
df.to_csv(f, index=False)
Auto-cached (documentation): Yes
Splits:
Split | Examples |
---|---|
'test' |
10,000 |
'train' |
50,000 |
- Feature structure:
FeaturesDict({
'coarse_label': ClassLabel(shape=(), dtype=int64, num_classes=20),
'id': Text(shape=(), dtype=string),
'image': Image(shape=(32, 32, 3), dtype=uint8),
'label': ClassLabel(shape=(), dtype=int64, num_classes=100),
'noise_label': ClassLabel(shape=(), dtype=int64, num_classes=100),
'worker_id': int64,
'worker_time': float32,
})
- Feature documentation:
Feature | Class | Shape | Dtype | Description |
---|---|---|---|---|
FeaturesDict | ||||
coarse_label | ClassLabel | int64 | ||
id | Text | string | ||
image | Image | (32, 32, 3) | uint8 | |
label | ClassLabel | int64 | ||
noise_label | ClassLabel | int64 | ||
worker_id | Tensor | int64 | ||
worker_time | Tensor | float32 |
Supervised keys (See
as_supervised
doc):None
Figure (tfds.show_examples):
- Examples (tfds.as_dataframe):
- Citation:
@inproceedings{wei2022learning,
title={Learning with Noisy Labels Revisited: A Study Using Real-World Human
Annotations},
author={Jiaheng Wei and Zhaowei Zhu and Hao Cheng and Tongliang Liu and Gang
Niu and Yang Liu},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=TBWA6PLJZQm}
}