April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
前ステップでは、スパイラル・データセットを使って多値分類を行いました。そこでは、x, t = dezero.datasets.get_spiral()というコードでデータの読み込みを行いました。このときxとtはndarrayインスタンスで、その形状はxが(300, 2)、tが(300,)でした。つまり私たちは、300個のデータを1つのndarrayインスタンスにまとめて保持していたのです。
スパイラル・データセットは、300個程度の小さなデータセットだったので、1つのndarrayインスタンスとして扱うことができました。しかし、大規模なデータセットを扱う場合――たとえば、100万個の要素からなるデータセットを想像してみましょう――、そのデータ形式では問題になります。なぜなら、1つの巨大なndarrayインスタンスを扱うとすれば、すべての要素をメモリへと展開しなければならないからです。ここでは、そのような問題にも対応できるように、データセット専用のクラス――Datasetクラス――を作ります。さらに、データの前処理を行える仕組みもDatasetクラスに備えさせます。
Datasetクラスは、基底クラスとして実装します。ユーザが実際に使用するデータセットは、Datasetクラスを継承して実装することにします。それでは、Datasetクラスの実装を次に示します。
dezero/datasets.py
importnumpyasnpclassDataset:def__init__(self,train=True):self.train=trainself.data=None
Read now
Unlock full access