class_docstr: Dataset iterator for learning models, e. g. neural networks.
  
  Args:
      data: list of (x, y) pairs for every data type in ``'train'``, ``'valid'`` and ``'test'``
      seed: random seed for data shuffling
      shuffle: whether to shuffle data during batching
  
  Attributes:
      shuffle: whether to shuffle data during batching
      random: instance of ``Random`` initialized with a seed
code: def __init__(
      self,
      data: Dict[str, List[Tuple[Any, Any]]],
      seed: int = None,
      shuffle: bool = True,
      *args,
      **kwargs,
  ) -> None:
      self.shuffle = shuffle
  
      self.random = Random(seed)
  
      self.train = self.preprocess(
          data.get("train", []), *args, **kwargs
      )
      self.valid = self.preprocess(
          data.get("valid", []), *args, **kwargs
      )
      self.test = self.preprocess(data.get("test", []), *args, **kwargs)
      self.split(*args, **kwargs)
      self.data = {
          "train": self.train,
          "valid": self.valid,
          "test": self.test,
          "all": self.train + self.test + self.valid,
      }
  
file_path: DeepPavlov/deeppavlov/core/data/data_learning_iterator.py
imports: from random import Random
  from typing import List, Dict, Tuple, Any, Iterator
  from deeppavlov.core.common.registry import register
label_desc: Use image node_id 3 to create a new DataLearningIterator object  with example: obj = DataLearningIterator(data, seed, shuffle)