class_docstr: Base class for image data iterators.
  
  Every `Iterator` must implement the `_get_batches_of_transformed_samples`
  method.
  
  # Arguments
      n: Integer, total number of samples in the dataset to loop over.
      batch_size: Integer, size of a batch.
      shuffle: Boolean, whether to shuffle the data between epochs.
      seed: Random seeding for data shuffling.
code: def _flow_index(self):
      # Ensure self.batch_index is 0.
      self.reset()
      while 1:
          if self.seed is not None:
              np.random.seed(self.seed + self.total_batches_seen)
          if self.batch_index == 0:
              self._set_index_array()
  
          if self.n == 0:
              # Avoiding modulo by zero error
              current_index = 0
          else:
              current_index = (
                  self.batch_index * self.batch_size
              ) % self.n
          if self.n > current_index + self.batch_size:
              self.batch_index += 1
          else:
              self.batch_index = 0
          self.total_batches_seen += 1
          yield self.index_array[
              current_index : current_index + self.batch_size
          ]
  
imports: import os
  import threading
  import numpy
  from keras_preprocessing import get_keras_submodule
  from .utils import array_to_img, img_to_array, load_img
label_desc: Use image node_id 7 for calling the Iterator obj's underlying member method code with example usage: obj._flow_index() without return types