cifar10_n

  • Описание :

Перемаркированная версия CIFAR-10 с реальными человеческими ошибками аннотаций. Для каждой пары (изображение, метка) в исходном наборе поездов CIFAR-10 он предоставляет несколько дополнительных меток, заданных реальными комментаторами-людьми.

  • Домашняя страница : https://ucsc-real.soe.ucsc.edu:1995/Home.html/

  • Исходный код : tfds.image_classification.cifar10_n.Cifar10N

  • Версии :

    • 1.0.0 : Первоначальный выпуск.
    • 1.0.1 : Исправлена ​​опечатка в ключе worse_label .
    • 1.0.2 : Исправлено соответствие между аннотациями и изображениями.
    • 1.0.3 : Исправлены файлы в MANUAL_DIR .
    • 1.0.4 (по умолчанию): Исправлена ​​загрузка дополнительной информации.
  • Размер загрузки : 162.17 MiB

  • Размер набора данных : 147.91 MiB .

  • Инструкции по ручной загрузке : этот набор данных требует, чтобы вы загружали исходные данные вручную в download_config.manual_dir (по умолчанию ~/tensorflow_datasets/downloads/manual/ ):
    Загрузите «side_info_cifar10N.csv», «CIFAR-10_human_ordered.npy» и «image_order_c10.npy» с https://github.com/UCSC-REAL/cifar-10-100n .

Затем преобразуйте «CIFAR-10_human_ordered.npy» в файл CSV «CIFAR-10_human_annotations.csv». Это можно сделать с помощью следующего кода:

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)
Расколоть Примеры
'test' 10 000
'train' 50 000
  • Структура функции :
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),
})
  • Документация по функциям :
Особенность Учебный класс Форма Dтип Описание
ОсобенностиDict
aggre_label Метка класса int64
я бы Текст нить
изображение Изображение (32, 32, 3) uint8
этикетка Метка класса int64
random_label1 Метка класса int64
random_label2 Метка класса int64
random_label3 Метка класса int64
worker1_id Тензор int64
worker1_time Тензор поплавок32
worker2_id Тензор int64
worker2_time Тензор поплавок32
worker3_id Тензор int64
рабочий3_время Тензор поплавок32
метка_хуже Метка класса int64

Визуализация

  • Цитата :
@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}
}