class chainer.dataset.Iterator[source]

すべてのデータセットのイテレータの基底クラス。

 

Iteratorはデータセットを繰り返し処理し 、各繰り返しでミニバッチを生成します。ミニバッチは学習データから取り出したデータ(=examples)のリストです。各実装はIteratorプロトコルを実装しなければなりません

(例えば __next__() メソッド)。

 

Iteratorがバッチサイズの設定をサポートするとき、全てのバッチが同じ数のデータを含んでいることは保証されませんので、注意してください。例えば、Iteratorを全データ(Sweep)の最後の方で停止したままにしておくと、最後のバッチはほんのすこしのデータしか含まないかもしれません。

 

Iteratorと元になるデータセットインタフェースは固定されておらず、実装によります。

各実装は下記の属性を提供しなければなりません(書き換え可能である必要はありません)

  • batch_size: 各ミニバッチに含めるデータの数
  • epoch: データセット全体の総数
  • epoch_detail: エポックの浮動小数点数版。例えば、イテレータが3番目のエポックでデータセットの中間地点にある場合、この値は2.5。
  • previous_epoch_detail: 前の反復処理の epoch_detail の値。この値は、最初のIterationの前は None
  • is_new_epoch: エポック数が前回の更新で増やされている場合、 True

各実装は、繰り返し処理の停止と再開をシリアル化をするシリアル化をサポートしなければなりません。

 

Methods

__next__()[source]

次のバッチを返す。

 

これはPythonのイテレータプロトコルの一部です。繰り返し処理を停止させたとき、StopIteration 例外を引き起こす可能性があります。 

__iter__()[source]

自身を返す。

finalize()[source]

Iterator を終了させ、リソースを解放する。

 

このメソッドはデフォルトでは何もしません。実装は、内部のリソースを管理するためにこれをオーバーライドするほうが良いかもしれません。

next()[source]

Python2 の __next__の代替。

 

これはデフォルトで __next__() を呼び出します。

serialize(serializer)[source]

Iteratorの内部ステートをシリアライズします。

 

これは ChainerのSerializerプロトコルをサポートしているメソッドです。

Note

この繰り返し処理中に変化する内部ステートのみをシリアライズすべきです。バッチサイズのようにユーザによって手動でセットされるものについてはシリアライズすべきではありません。