docs: def _get_batch_data(self, batch_size, num_objects, num_features):
      """Assembles a batch of input tensors and output labels.
  
      Args:
        batch_size: int. number of sequence batches.
        num_objects: int. number of objects in the sequence.
        num_features: int. feature size of each object.
  
      Returns:
        1. np.ndarray (`batch_size`, `num_objects`,
                       (`num_features` + 3 * `num_objects`)).
        2. np.ndarray (`batch_size`). Output object reference label.
      """
      all_inputs = []
      all_labels = []
      for _ in six.moves.range(batch_size):
        inputs, labels = self._get_single_set(num_objects, num_features)
        all_inputs += [inputs]
        all_labels += [labels]
      input_data = np.concatenate(all_inputs, axis=0)
      label_data = np.concatenate(all_labels, axis=0)
      return input_data, label_data