class_docstr: Simple numpy data generator backed by numpy arrays.
  
  Can be useful for applying numpy data to estimators in other frameworks
      e.g., when translating the entire numpy data to GPU tensors would cause OOM
docstr: Provide the next batch for training in the form of a tuple `(x, y)`.
      The generator will loop over the data indefinitely.
      If drop_remainder is True, then the last minibatch in each epoch may be a different size
  
  :return: A tuple containing a batch of data `(x, y)`.
code: def get_batch(self) -> tuple:
      """
      Provide the next batch for training in the form of a tuple `(x, y)`.
          The generator will loop over the data indefinitely.
          If drop_remainder is True, then the last minibatch in each epoch may be a different size
  
      :return: A tuple containing a batch of data `(x, y)`.
      """
      try:
          return next(self.generator)
      except StopIteration:
          self.generator = iter(self)
          return next(self.generator)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import abc
  import inspect
  import logging
  from typing import Any, Dict, Generator, Iterator, Optional, Tuple, Union, TYPE_CHECKING
  import numpy
label_desc: Use image node_id 3 for calling the NumpyDataGenerator obj's underlying member method code with example usage: obj.get_batch() and returns: next, next