code: def _get_batch(self):
      
      batch_indices = np.mod(
          np.array([
              np.arange(head_index, head_index + self._num_steps + 1) for
              head_index in self._head_indices]),
          self._n_flat_elements)
  
      obs = np.array([
          self._flat_data[indices[:self._num_steps]]
          for indices in batch_indices]).T
      target = np.array([
          self._flat_data[indices[1:self._num_steps + 1]]
          for indices in batch_indices]).T
  
      if self._random_sampling:
        self._reset_head_indices()
      else:
        self._head_indices = np.mod(
            self._head_indices + self._num_steps, self._n_flat_elements)
      return obs, target
docs: Returns a batch of sequences.
  
      Returns:
        obs: np.int32 array of size [Time, Batch]
        target: np.int32 array of size [Time, Batch]