code: def make_cholesky_like_marginal_fn(
      cholesky_like, name="CholeskyLikeMarginalFn"
  ):
      """Use a Cholesky-like function for `GaussianProcess` `marginal_fn`.
  
      For use with "Cholesky-like" lower-triangular factorizations (LL^T).  See
      `make_backoff_cholesky` for one way to create such functions.
  
      Args:
        cholesky_like: A callable with the same signature as `tf.linalg.cholesky.`
        name: Python `str` name prefixed to Ops created by this function.
          Default value: 'CholeskyLikeMarginalFn'.
  
      Returns:
        marginal_function: A function that can be used with the `marginal_fn`
          argument to `GaussianProcess`.
      """
  
      def marginal_fn(
          loc,
          covariance,
          validate_args=False,
          allow_nan_stats=False,
          name=name,
      ):
          with tf.name_scope(name) as name:
              scale = tf.linalg.LinearOperatorLowerTriangular(
                  cholesky_like(covariance), is_non_singular=True
              )
              return (
                  mvn_linear_operator.MultivariateNormalLinearOperator(
                      loc=loc,
                      scale=scale,
                      validate_args=validate_args,
                      allow_nan_stats=allow_nan_stats,
                  )
              )
  
      return marginal_fn
  
file_path: probability/tensorflow_probability/python/experimental/distributions/marginal_fns.py
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.internal import custom_gradient
  from tensorflow_probability.python.internal import prefer_static
label_desc: Use image node_id 2 for calling a global function with example usage: make_cholesky_like_marginal_fn(cholesky_like, name) and returns: marginal_fn, mvn_linear_operator