- Descriptif :
Une version réétiquetée de CIFAR-10 avec de vraies erreurs d'annotation humaine. Pour chaque paire (image, étiquette) du train CIFAR-10 original, il fournit plusieurs étiquettes supplémentaires données par de vrais annotateurs humains.
Page d' accueil : https://ucsc-real.soe.ucsc.edu:1995/Home.html/
Code source :
tfds.image_classification.cifar10_n.Cifar10N
Versions :
-
1.0.0
: Version initiale. -
1.0.1
: Correction d'une faute de frappe dans la cléworse_label
. -
1.0.2
: Correction de la correspondance entre les annotations et les images. -
1.0.3
: Correction des fichiers dansMANUAL_DIR
. -
1.0.4
(par défaut) : Correction du chargement des informations secondaires.
-
Taille du téléchargement :
162.17 MiB
Taille du jeu de données :
147.91 MiB
Instructions de téléchargement manuel : cet ensemble de données nécessite que vous téléchargiez manuellement les données sources dans
download_config.manual_dir
(par défaut~/tensorflow_datasets/downloads/manual/
) :
Téléchargez 'side_info_cifar10N.csv', 'CIFAR-10_human_ordered.npy' et 'image_order_c10.npy' depuis https://github.com/UCSC-REAL/cifar-10-100n
Ensuite, convertissez 'CIFAR-10_human_ordered.npy' en un fichier CSV 'CIFAR-10_human_annotations.csv'. Cela peut être fait avec le code suivant :
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-10_human_ordered.npy'
human_labels_csv_path = '<local_path>/CIFAR-10_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)
Mise en cache automatique ( documentation ): Oui
Fractionnements :
Diviser | Exemples |
---|---|
'test' | 10 000 |
'train' | 50 000 |
- Structure des fonctionnalités :
FeaturesDict({
'aggre_label': ClassLabel(shape=(), dtype=int64, num_classes=10),
'id': Text(shape=(), dtype=string),
'image': Image(shape=(32, 32, 3), dtype=uint8),
'label': ClassLabel(shape=(), dtype=int64, num_classes=10),
'random_label1': ClassLabel(shape=(), dtype=int64, num_classes=10),
'random_label2': ClassLabel(shape=(), dtype=int64, num_classes=10),
'random_label3': ClassLabel(shape=(), dtype=int64, num_classes=10),
'worker1_id': int64,
'worker1_time': float32,
'worker2_id': int64,
'worker2_time': float32,
'worker3_id': int64,
'worker3_time': float32,
'worse_label': ClassLabel(shape=(), dtype=int64, num_classes=10),
})
- Documentation des fonctionnalités :
Caractéristique | Classer | Forme | Dtype | La description |
---|---|---|---|---|
FonctionnalitésDict | ||||
aggre_label | Étiquette de classe | int64 | ||
identifiant | Texte | chaîne de caractères | ||
image | Image | (32, 32, 3) | uint8 | |
étiquette | Étiquette de classe | int64 | ||
random_label1 | Étiquette de classe | int64 | ||
random_label2 | Étiquette de classe | int64 | ||
random_label3 | Étiquette de classe | int64 | ||
worker1_id | Tenseur | int64 | ||
worker1_time | Tenseur | float32 | ||
worker2_id | Tenseur | int64 | ||
worker2_time | Tenseur | float32 | ||
worker3_id | Tenseur | int64 | ||
worker3_time | Tenseur | float32 | ||
pire_étiquette | Étiquette de classe | int64 |
Clés supervisées (Voir
as_supervised
doc ):None
Figure ( tfds.show_examples ):
- Exemples ( 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}
}