docs: def _make_eval_func(self, tensors, session, feed_dict, fetches,
                        callback=None):
      """Construct a function that evaluates a `Tensor` or list of `Tensor`s."""
      if not isinstance(tensors, list):
        tensors = [tensors]
      num_tensors = len(tensors)
  
      def eval_func(x):
        """Function to evaluate a `Tensor`."""
        shapes = dict(zip(self._vars, self._var_shapes))
        augmented_feed_dict = {
            var: x[packing_slice].reshape(shapes[var])
            for var, packing_slice in zip(self._vars, self._packing_slices)
        }
        augmented_feed_dict.update(feed_dict)
        augmented_fetches = tensors + fetches
  
        augmented_fetch_vals = session.run(
            augmented_fetches, feed_dict=augmented_feed_dict)
  
        if callable(callback):
          callback(*augmented_fetch_vals[num_tensors:])
  
        return augmented_fetch_vals[:num_tensors]
  
      return eval_func