はじめに モデルを訓練する際に,MNIST程度の画像サイズと枚数のデータセットであれば最初にすべてメモリに読み込むことができるので高速にイテレーションを回すことができます。 しかし,自前のそれなりに大きいサイズと枚数の画像データセットでモデルを訓練しようとすると,データがすべてメモリに乗り切らなくなってしまうことがよくあります。 ChainerのImageDataset Chainerには自前の画像データセットを扱うためにImageDataset, LabeledImageDatasetなどのクラスが用意されています。 これらのクラスは画像のパスやラベルだけを保持しており,画像データ自体はイテレータなどからget_example()が呼び出されるたびにその都度読み込まれます。 そのため,メモリに乗り切らないような大規模なデータセットも扱うことができますが,画像を参照するたびに読み込みのオー
