April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
これまで私たちは、データセットを容易に扱える仕組みを作ってきました。簡単に復習すると、まずはDatasetクラスによって、データセットの取り扱いが共通化されました(インターフェイスを固定しました)。そしてDatasetクラスには、データセットの「前処理」を設定できるようにしました。最後にDataLoaderクラスによって、Datasetからミニバッチを作れるようにしました。これらの関係性を図で表すと、図51-1のようになります。
図51-1 DeZeroのデータセットのクラス図
図51-1では、前処理を行うオブジェクト(呼び出し可能なオブジェクト)をCallableとして図示しています。この図に示すとおり、CallableはDatasetが保持し、DatasetはDataLoaderが保持するという関係性になります。そしてユーザは(ユーザの書く学習コードは)、DataLoaderに対してデータを要求し、ミニバッチを取得します。
ここでは、上のデータセットの仕組みを使って、別の新しいデータセットを対象に学習を行います。そのデータセットはMNISTです。まずはMNISTデータセットについて簡単に見ていきます。
DeZeroでは、dezero/datasets.pyにMNISTクラスを用意しています。このMNISTクラスは、Datasetクラスを継承して実装されています。実際に使ってみると、次のようになります。
Read now
Unlock full access