- opis :
Zmieniona etykieta wersji CIFAR-10 z prawdziwymi błędami adnotacji ludzkich. Dla każdej pary (obraz, etykieta) w oryginalnym zestawie pociągów CIFAR-10 zapewnia kilka dodatkowych etykiet nadanych przez prawdziwych ludzkich adnotatorów.
Strona główna : https://ucsc-real.soe.ucsc.edu:1995/Home.html/
Kod źródłowy :
tfds.image_classification.cifar10_n.Cifar10N
Wersje :
-
1.0.0
: Pierwsza wersja. -
1.0.1
: Naprawiono literówkę w kluczuworse_label
. -
1.0.2
: Naprawiono zgodność między adnotacjami a obrazami. -
1.0.3
: Naprawione pliki wMANUAL_DIR
. -
1.0.4
(domyślnie): Naprawiono ładowanie informacji pobocznych.
-
Rozmiar pliku do pobrania :
162.17 MiB
Rozmiar zestawu danych :
147.91 MiB
Instrukcje ręcznego pobierania : ten zestaw danych wymaga ręcznego pobrania danych źródłowych do katalogu
download_config.manual_dir
(domyślnie~/tensorflow_datasets/downloads/manual/
):
Pobierz „side_info_cifar10N.csv”, „CIFAR-10_human_ordered.npy” i „image_order_c10.npy” z https://github.com/UCSC-REAL/cifar-10-100n
Następnie przekonwertuj „CIFAR-10_human_ordered.npy” na plik CSV „CIFAR-10_human_annotations.csv”. Można to zrobić za pomocą następującego kodu:
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)
Automatyczne buforowanie ( dokumentacja ): Tak
Podziały :
Rozdzielać | Przykłady |
---|---|
'test' | 10 000 |
'train' | 50 000 |
- Struktura funkcji :
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),
})
- Dokumentacja funkcji :
Funkcja | Klasa | Kształt | Typ D | Opis |
---|---|---|---|---|
FunkcjeDict | ||||
agre_label | Etykieta klasy | int64 | ||
ID | Tekst | strunowy | ||
obraz | Obraz | (32, 32, 3) | uint8 | |
etykieta | Etykieta klasy | int64 | ||
losowa_etykieta1 | Etykieta klasy | int64 | ||
losowa_etykieta2 | Etykieta klasy | int64 | ||
losowa_etykieta3 | Etykieta klasy | int64 | ||
pracownik1_id | Napinacz | int64 | ||
pracownik1_czas | Napinacz | pływak32 | ||
identyfikator_pracownika2 | Napinacz | int64 | ||
pracownik2_czas | Napinacz | pływak32 | ||
identyfikator_pracownika3 | Napinacz | int64 | ||
pracownik3_czas | Napinacz | pływak32 | ||
gorsza_etykieta | Etykieta klasy | int64 |
Klucze nadzorowane (Zobacz dokument
as_supervised
):None
Rysunek ( tfds.show_examples ):
- Przykłady ( tfds.as_dataframe ):
- Cytat :
@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}
}