class_docstr: Base class of all dataset iterators.
  
  Iterator iterates over the dataset, yielding a minibatch at each
  iteration. Minibatch is a list of examples. Each implementation should
  implement an iterator protocol (e.g., the :meth:`__next__` method).
  
  Note that, even if the iterator supports setting the batch size, it does
  not guarantee that each batch always contains the same number of examples.
  For example, if you let the iterator to stop at the end of the sweep, the
  last batch may contain a fewer number of examples.
  
  The interface between the iterator and the underlying dataset is not fixed,
  and up to the implementation.
  
  Each implementation should provide the following attributes (not needed to
  be writable).
  
  - ``batch_size``: Number of examples within each minibatch.
  - ``epoch``: Number of completed sweeps over the dataset.
  - ``epoch_detail``: Floating point number version of the epoch. For
    example, if the iterator is at the middle of the dataset at the third
    epoch, then this value is 2.5.
  - ``previous_epoch_detail``: The value of ``epoch_detail`` at the previous
    iteration. This value is ``None`` before the first iteration.
  - ``is_new_epoch``: ``True`` if the epoch count was incremented at the last
    update.
  
  Each implementation should also support serialization to resume/suspend the
  iteration.
docstr: Returns self.
code: def __iter__(self):
      """Returns self."""
      return self
  
file_path: chainer/chainer/dataset/iterator.py
label_desc: Use image node_id 2 for calling the Iterator obj's underlying member method code with example usage: obj.__iter__() and returns: self