最も基本的なdatasetの実装は、配列です。NumPy と CuPy 配列の両方ともデータセットとして利用可能です。
しかし、多くの場合、シンプルな配列は訓練処理を記述するのに十分ではありません。このような多くの場合をカバーするために、 Chainer は多くのデータセットのビルトイン実装を提供しています。
このビルトイン実装は、2つのグループに分けられます。1つは一般的なデータセットのグループ。このうちのほとんどは、何かの構造(例えばタプルやdict)をそれぞれのデータポイントに導入する他のデータセットのラッパーです。 もう1つは具体的な人気のあるデータセットのグループです。これらの具体的な例をキダウンロードされ変換されたデータセットをキャッシュするために chainer.dataset
モジュールでダンロードユーティリティを使用します。
一般的なデータセットは、更に4つのタイプにわけられます。
1つ目は、 DictDataset
と TupleDataset
で、両方のデータセットが他のデータセットを結合して、何か構造を導入しています。
2つ目は、 ConcatenatedDataset
と SubDataset
です。 ConcatenatedDataset
は、現在のデータセットの結合を表しています。また、データセットのマージや、更に大きなデータセットを作成するのに使用できます。SubDataset
現在のデータセットのサブセットを表しています。.また、hold-out検証や交差検証のためのデータセットの分割に使用可能です。ランダムな分割を行うためのConvenient
関数も提供されています。
3つ目は TransformDataset
です。関数をもとになるデータセットからインデクスされたデータに適用することによってデータセットをラップします。 用意された挙動を変更する際に利用されます。
最後の1つはドメイン固有データセットのグループです。現在、ImageDataset
とLabeledImageDataset
が画像のデータセットとして提供されています。
chainer.datasets.DictDataset | データセットのディクショナリのデータセット |
chainer.datasets.TupleDataset | データセットのタプルのデータセット |
複数のデータセットを結合するデータセット。
このデータセットは、ベースとなるデータセットをラップし、結合されたデータセットとして機能する。たとえば、10サンプルのベースとなるデータセットと、他の20サンプルからなるデータセットが与えられた場合、このデータセットは30サンプル数のデータセットとして機能する。
Parameters: datasets – もとになるデータセット群。それぞれのデータセットは __len__()
と__getitem__()
をサポートしなければならない。
chainer.datasets.SubDataset | 基底データセットのサブセット |
chainer.datasets.split_dataset | データセットを2つのサブセットに分割する |
chainer.datasets.split_dataset_random | データセットをランダムに2つのサブセットに分割する |
chainer.datasets.get_cross_validation_datasets |
交差検証のために訓練とテスト用に分割したデータセットを作成する |
chainer.datasets.get_cross_validation_datasets_random | 交差検証のために、訓練とテスト用にランダムに分割したデータセットを作成する |
chainer.datasets.TransformDataset |
Dataset that indexes the base dataset and transforms the data. 基底データセットをインデックスして、データを変換するデータセット |
chainer.datasets.ImageDataset |
画像ファイルのパスのリストから画像データせっとを構築する |
chainer.datasets.LabeledImageDataset |
パスとラベルのリストから画像とラベルがペアになったデータセットを構築する |
chainer.datasets.get_mnist | MNIST のデータセットを取得する |
chainer.datasets.get_cifar10 | CIFAR-10 のデータセットを取得する |
chainer.datasets.get_cifar100 | CIFAR-100 のデータセットを取得する |
chainer.datasets.get_ptb_words | Penn Tree Bank のデータセットを 長い単語列として取得する |
chainer.datasets.get_ptb_words_vocabulary | Penn Tree Bank word vocabularyを |