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/ ) にダウンロードする必要があります。
    https://github.com/UCSC-REAL/cifar-10-100nから「side_info_cifar10N.csv」、「CIFAR-10_human_ordered.npy」、「image_order_c10.npy」をダウンロードします

次に、「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),
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
aggre_labelクラスラベルint64
ID文章ストリング
画像画像(32, 32, 3) uint8
ラベルクラスラベルint64
random_label1クラスラベルint64
random_label2クラスラベルint64
random_label3クラスラベルint64
worker1_idテンソルint64
worker1_timeテンソルfloat32
worker2_idテンソルint64
worker2_timeテンソルfloat32
worker3_idテンソルint64
worker3_timeテンソルfloat32
より悪い_ラベルクラスラベル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}
}