code: def load_batch(self, fn_batch):
          
  
          # TODO Assumes targets are available, which is how its distinct from
          # utils.load_batch_x(). These functions need to change names to be
          # clearer.
  
          inverse = list(zip(*fn_batch))
          feat_fn_batch = inverse[0]
          target_fn_batch = inverse[1]
  
          batch_inputs, batch_inputs_lens = utils.load_batch_x(feat_fn_batch,
                                                               flatten=False)
          batch_targets_list = []
          for targets_path in target_fn_batch:
              with open(targets_path, encoding=ENCODING) as targets_f:
                  target_indices = self.corpus.labels_to_indices(targets_f.readline().split())
                  batch_targets_list.append(target_indices)
          batch_targets = utils.target_list_to_sparse_tensor(batch_targets_list)
  
          return batch_inputs, batch_inputs_lens, batch_targets
docs: Loads a batch with the given prefixes. The prefixes is the full path to the
          training example minus the extension.