PyTorch/TensorFlow/Keras/scikit-learnライブラリ内蔵のデータセット一覧:AI・機械学習のデータセット辞典
機械学習やディープラーニング用の主要ライブラリが提供する「画像/音声/テキストなどのデータセット」の名前とリンクを表にまとめ、典型的な使い方を簡単に紹介する。
本連載「AI・機械学習のデータセット辞典」では、ここまで主に、scikit-learnやKeras/TensorFlow(tf.keras)、TensorFlow Datasets、PyTorchといった主要なPythonライブラリに共通的に含まれる代表的なデータセットを紹介し、各ライブラリでの典型的な実装コード例を示してきた。しかし、これらの全ライブラリに共通的に含まれているデータセットはまれで非常に少ない。よってこれからは、個々のライブラリに1つしか含まれていないようなこまごまとしたデータセットも紹介していく(不定期で公開中)。
それに備えて、前回はデータセットを検索するための代表的なサイトである「Dataset Search」を紹介した。今回も引き続き、個々のデータセットの紹介に入る前に、各ライブラリに付属するデータセットを簡単に紹介する。
ただし、全てのデータセットを説明すると長大な記事となってしまうので、データセットの分類と名前だけを示し、具体的な内容は割愛する。本稿はライブラリ内蔵のデータセット全体(名前)を一望してすばやく知りたい場合に活用してほしい。さっそくscikit-learnから順に説明していこう。
scikit-learnのデータセット
Pythonの機械学習ライブラリであるscikit-learnでは、
- Toy datasets(図1)
として、表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提供のデータセット一覧表 |
これら以外のデータセットは、
- OpenML(図2)
というサイトから簡単にロードできる機能が搭載されている。具体的にはsklearn.datasets.fetch_openml()関数(※EXPERIMENTAL、つまり実験段階のAPI)を呼び出せばよい。この関数は、OpenML.orgサイトからデータセットをフェッチ(=取得)するためのもので、例えばfrom sklearn.datasets import fetch_openml; dataset = fetch_openml('CIFAR_10')というコードを実行すると、「OpenML CIFAR_10」がフェッチできる。
OpenMLには、(2020年7月時点で)2万件以上のデータセットが(基本的に第三者によって)登録されており非常に多いので、本稿では個々のデータセットの名前掲載は控える。
Keras/TensorFlow(tf.keras)のデータセット
ディープラーニング用のPythonライブラリであるKerasや、Keras APIが同梱されたTensorFlow 2.0以降では、
として、表2に示す7つ(※2020年7月時点)のデータセットを提供している。
7つだと少ないと感じるだろうが、TensorFlow 2.x以降を利用であれば、次に説明するTensorFlow Datasetsも利用できる。
TensorFlow Datasets
ディープラーニング用のPythonライブラリであるTensorFlow 2.0以降では、
- TensorFlow Datasets(tensorflow_datasetsモジュール)
という別ライブラリで、表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のデータセット
ディープラーニング用のPythonライブラリであるPyTorchでは、
- torchvision.datasets(torchvisionパッケージのモジュール)
- torchaudio.datasets(torchaudioパッケージのモジュール)
- torchtext.datasets(torchtextパッケージのモジュール)
という別ライブラリで、表5に示す56個(※2020年7月時点)のデータセットを提供している。※これも数が多すぎるので、表4では名前のみで短く記載した。また、(図5に示す公式APIリファレンスのカテゴリ分けに倣い)下記の11種類に分けた。
- Vision(コンピュータビジョン)
- Audio(音声)
- Text(テキスト)−Language Modeling(言語モデリング)
- Text(テキスト)−Sentiment Analysis(感情分析)
- Text(テキスト)−Text Classification(テキスト分類)
- Text(テキスト)−Question Classification(質問分類)
- Text(テキスト)−Entailment(含意)
- Text(テキスト)−Machine Translation(機械翻訳)
- Text(テキスト)−Sequence Tagging(シーケンスタグ付け)
- Text(テキスト)−Question Answering(質問応答)
- Text(テキスト)−Unsupervised Learning(教師なし学習)
名前だけだと内容が分からない場合、各データセットの内容は、上記のリンク先を参照してほしい。
分野 | データセット名 | ||
---|---|---|---|
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ライブラリのtorchvision/torchaudio/torchtextパッケージとPyTorch自体に搭載されている。具体的には例えばtorchvisionパッケージであれば、torchvision.datasets.CIFAR10クラスのインスタンスを生成してデータセットをダウンロードし、torch.utils.data.DataLoaderクラスのオブジェクト(データローダー)などを使ってデータをロードすればよい。
Copyright© Digital Advantage Corp. All Rights Reserved.