連載
» 2020年07月22日 05時00分 公開

AI・機械学習のデータセット辞典:PyTorch/TensorFlow/Keras/scikit-learnライブラリ内蔵のデータセット一覧

機械学習やディープラーニング用の主要ライブラリが提供する「画像/音声/テキストなどのデータセット」の名前とリンクを表にまとめ、典型的な使い方を簡単に紹介する。

[一色政彦,デジタルアドバンテージ]
「AI・機械学習のデータセット辞典」のインデックス

連載目次

 本連載「AI・機械学習のデータセット辞典」では、ここまで主に、scikit-learnやKeras/TensorFlow(tf.keras)、TensorFlow Datasets、PyTorchといった主要なPythonライブラリに共通的に含まれる代表的なデータセットを紹介し、各ライブラリでの典型的な実装コード例を示してきた。しかし、これらの全ライブラリに共通的に含まれているデータセットはまれで非常に少ない。よってこれからは、個々のライブラリに1つしか含まれていないようなこまごまとしたデータセットも紹介していく(隔週で公開の予定)。

 それに備えて、前回はデータセットを検索するための代表的なサイトである「Dataset Search」を紹介した。今回も引き続き、個々のデータセットの紹介に入る前に、各ライブラリに付属するデータセットを簡単に紹介する。

 ただし、全てのデータセットを説明すると長大な記事となってしまうので、データセットの分類と名前だけを示し、具体的な内容は割愛する。本稿はライブラリ内蔵のデータセット全体(名前)を一望してすばやく知りたい場合に活用してほしい。さっそくscikit-learnから順に説明していこう。

scikit-learnのデータセット

図1 scikit-learnのToy datasets(おもちゃデータセット)ページ 図1 scikit-learnのToy datasets(おもちゃデータセット)ページ

 Pythonの機械学習ライブラリであるscikit-learnでは、

として、表1に示す7つのデータセットを提供している。

問題種別 データセット名 関数
回帰 Boston Housing(ボストンの住宅価格) sklearn.datasets.load_boston()
Diabetes(糖尿病) sklearn.datasets.load_diabetes()
分類 Iris(あやめ) sklearn.datasets.load_iris()
Digits Image(数字画像) sklearn.datasets.load_digits()
Physical Exercise Linnerud(生理学的変数と運動能力) sklearn.datasets.load_linnerud()
Wine(ワイン) sklearn.datasets.load_wine
Breast Cancer(乳がん) sklearn.datasets.load_breast_cancer()
表1 scikit-learn提供のデータセット一覧表

 これら以外のデータセットは、

というサイトから簡単にロードできる機能が搭載されている。具体的にはsklearn.datasets.fetch_openml()関数(EXPERIMENTAL、つまり実験段階のAPI)を呼び出せばよい。この関数は、OpenML.orgサイトからデータセットをフェッチ(=取得)するためのもので、例えばfrom sklearn.datasets import fetch_openml; dataset = fetch_openml('CIFAR_10')というコードを実行すると、「OpenML CIFAR_10」がフェッチできる。

図2 サイト「OpenML」上のデータセットはscikit-learnで簡単にロードできる 図2 サイト「OpenML」上のデータセットはscikit-learnで簡単にロードできる

 OpenMLには、(2020年7月時点で)2万件以上のデータセットが(基本的に第三者によって)登録されており非常に多いので、本稿では個々のデータセットの名前掲載は控える。

Keras/TensorFlow(tf.keras)のデータセット

図3 Kerasのtf.keras.datasetsページ 図3 Kerasのtf.keras.datasetsページ

 ディープラーニング用のPythonライブラリであるKerasや、Keras APIが同梱されたTensorFlow 2.0以降では、

として、表2に示す7つ(2020年7月時点)のデータセットを提供している。

 7つだと少ないと感じるだろうが、TensorFlow 2.x以降を利用であれば、次に説明するTensorFlow Datasetsも利用できる。

TensorFlow Datasets

図4 TensorFlow Datasetsのカタログページ 図4 TensorFlow Datasetsのカタログページ

 ディープラーニング用のPythonライブラリであるTensorFlow 2.0以降では、

という別ライブラリで、表3に示す197個(2020年7月時点)のデータセットを提供している。このように数が多すぎるので、表3では名前のみで短く記載した。また、先ほどまでの回帰/分類ではなく、(図4に示す公式データセットカタログのカテゴリ分けに倣い)下記の9種類に分けた。

 名前だけだと内容が分からないものも多いと思うので、各データセットの内容は、上記のリンク先を参照してほしい。

分野 データセット名
Audio
(音声)
common_voice、crema_d、dementiabank、fuss、groove、librispeech、libritts、ljspeech、nsynth、savee、speech_commands、tedlium、vctk、voxceleb、voxforge、voxceleb、voxforge
Image
(画像)
abstract_reasoning、aflw2k3d、arc、binarized_mnist、celeb_a、celeb_a_hq、clevr、clic nights_stay、coil100、div2k、downsampled_imagenet、dsprites、duke_ultrasound、flic、lost_and_found、lsun、nyu_depth_v2、scene_parse150、shapes3d、the300w_lp
Image classification
(画像分類)
beans、bigearthnet、binary_alpha_digits、caltech101、caltech_birds2010、caltech_birds2011、cars196、cassava、cats_vs_dogs、cifar10、cifar100、cifar10_1、cifar10_corrupted、citrus_leaves、cmaterdb、colorectal_histology、colorectal_histology_large、curated_breast_imaging_ddsm、cycle_gan、deep_weeds、diabetic_retinopathy_detection、dmlab、dtd、emnist、eurosat、fashion_mnist、food101、geirhos_conflict_stimuli、horses_or_humans、i_naturalist2017、imagenet2012、imagenet2012_corrupted、imagenet2012_real、imagenet2012_subset、imagenet_a、imagenet_resized、imagenet_v2、imagenette、imagewang、kmnist、lfw、malaria、mnist、mnist_corrupted、omniglot、oxford_flowers102、oxford_iiit_pet、patch_camelyon、pet_finder、places365_small、plant_leaves、plant_village、plantae_k、quickdraw_bitmap、resisc45、rock_paper_scissors、smallnorb、so2sat、stanford_dogs、stanford_online_products、stl10、sun397、svhn_cropped、tf_flowers、uc_merced、vgg_face2、visual_domain_decathlon
Object detection
(物体検知)
coco、kitti、open_images_challenge2019_detection、open_images_v4、voc、waymo_open_dataset、wider_face
Question answering
(質問応答)
ai2_arc、cosmos_qa、mctaco、natural_questions、squad、trivia_qa、web_questions
Structured
(構造化データ)
amazon_us_reviews、forest_fires、german_credit_numeric、higgs、iris、movie_lens、rock_you、titanic、Summarization、aeslc、big_patent、billsum、cnn_dailymail、covid19sum、gigaword、multi_news、newsroom、opinion_abstracts、opinosis、reddit、reddit_tifu、samsum、scientific_papers、wikihow、xsum
Text
(テキスト)
anli、blimp、c4、cfq、civil_comments、clinc_oos、cos_e、definite_pronoun_resolution、eraser_multi_rc、esnli、gap、glue、goemotions nights_stay、imdb_reviews、irc_disentanglement、librispeech_lm、lm1b、math_dataset、movie_rationales、multi_nli、multi_nli_mismatch、openbookqa、pg19、qa4mre、reddit_disentanglement、scan、scicite、snli、super_glue、tiny_shakespeare、wiki40b、wikipedia、wikipedia_toxicity_subtypes、winogrande、wordnet、xnli、yelp_polarity_reviews
Translate
(翻訳)
flores、opus、para_crawl、ted_hrlr_translate、ted_multi_translate、wmt14_translate、wmt15_translate、wmt16_translate、wmt17_translate、wmt18_translate、wmt19_translate、wmt_t2t_translate
Video
(動画)
bair_robot_pushing_small、moving_mnist、robonet、starcraft_video、ucf101
表3 TensorFlow Datasets提供のデータセット一覧表

 これらのデータセットを簡単にロードできる機能がTensorFlow Datasetsライブラリに搭載されている。具体的にはtensorflow_datasetsモジュール(=tfds)のtfds.load()関数を呼び出せばよい。この関数は、Web上からデータセットをロードする(=読み込む)ためのもので、例えばimport tensorflow_datasets as tfds; dataset = tfds.load(name="cifar10", split="train")というコードを実行すると、TensorFlow Datasetsの「cifar10」データセットが(自動的にダウンロードされたうえで)ロードされる。

PyTorchのデータセット

図5 PyTorchのAPIリファレンスページ 図5 PyTorchのAPIリファレンスページ

 ディープラーニング用のPythonライブラリであるPyTorchでは、

という別ライブラリで、表5に示す56個(2020年7月時点)のデータセットを提供している。これも数が多すぎるので、表4では名前のみで短く記載した。また、(図5に示す公式APIリファレンスのカテゴリ分けに倣い)下記の11種類に分けた。

 名前だけだと内容が分からない場合、各データセットの内容は、上記のリンク先を参照してほしい。

分野 データセット名
Vision
(コンピュータビジョン:
torchvision)
MNIST、Fashion-MNIST、KMNIST、EMNIST、QMNIST、FakeData、COCO、LSUN、ImageFolder、DatasetFolder、ImageNet、CIFAR、STL10、SVHN、PhotoTour、SBU、Flickr、VOC、Cityscapes、SBD、USPS、Kinetics-400、HMDB51、UCF101、CelebA
Audio
(音声:
torchaudio)
Datasets、COMMONVOICE、LIBRISPEECH、LJSPEECH、SPEECHCOMMANDS、VCTK、YESNO
Text
(テキスト:
torchtext)
Language Modeling
(言語モデリング)
WikiText-2、WikiText103、PennTreebank
Sentiment Analysis
(感情分析)
SST、IMDb
Text Classification
(テキスト分類)
TextClassificationDataset、AG_NEWS、SogouNews、DBpedia、YelpReviewPolarity、YelpReviewFull、YahooAnswers、AmazonReviewPolarity、AmazonReviewFull
Question Classification
(質問分類)
TREC
Entailment
(含意)
SNLI、MultiNLI
Machine Translation
(機械翻訳)
Multi30k、IWSLT、WMT14
Sequence Tagging
(シーケンスタグ付け)
UDPOS、CoNLL2000Chunking
Question Answering
(質問応答)
BABI20
Unsupervised Learning
(教師なし学習)
EnWik9
表4 PyTorch提供のデータセット一覧表

 これらのデータセットを簡単にロードできる機能がPyTorchライブラリのtorchvisiontorchaudiotorchtextパッケージとPyTorch自体に搭載されている。具体的には例えばtorchvisionパッケージであれば、torchvision.datasets.CIFAR10クラスのインスタンスを生成してデータセットをダウンロードし、torch.utils.data.DataLoaderクラスのオブジェクト(データローダー)などを使ってデータをロードすればよい。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

編集部からのお知らせ

8月8日10時30分〜16時30分の間、システムメンテナンスのため記事の一部表示や資料のダウンロードができなくなります。ご理解のほどよろしくお願いいたします。

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。