class_docstr: Marginal distribution of a Multitask GP at finitely many points.
code: def _sample_n(self, n, index_points=None, seed=None):
      # Samples is of shape [n] + B1 + [E, N], where E is the number of index
      # points, and N is the number of tasks.
      samples = self._get_flattened_marginal_distribution(
          index_points=index_points
      ).sample(n, seed=seed)
      return _unvec(samples, [-1, self.kernel.num_tasks])
  
imports: import functools
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import cholesky_util
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.distributions.internal import stochastic_process_util
  from tensorflow_probability.python.experimental.linalg import linear_operator_unitary
  from tensorflow_probability.python.experimental.psd_kernels import multitask_kernel
  from tensorflow_probability.python.internal import batch_shape_lib
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import nest_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow.python.util import nest
label_desc: Use image node_id 18 for calling the MultiTaskGaussianProcess obj's underlying member method code with example usage: obj._sample_n(n, index_points, seed) and returns: _unvec