docstr: Construct an MVN with fully defined shapes.
docstr_tok: ["Construct","an","MVN","with","fully","defined","shapes","."]
code: def _get_mvn_shape_tensors(self, loc_shape, cov_diag_shape):
      """Construct an MVN with fully defined shapes."""
  
      dtype = np.float32
  
      # Use a slice of the fully defined bcast_shape to make numpy parameters.
      # This ensures the parameters are (i) fully defined, (ii) the correct rank.
      def _make_mvn():
          loc = tf.ones(loc_shape, dtype=dtype)
          covariance_diag_factor = tf.ones(cov_diag_shape, dtype=dtype)
          covariance_perturb_factor = tf.ones(
              cov_diag_shape + (1,), dtype=dtype
          )
  
          cov_operator = tf.linalg.LinearOperatorLowRankUpdate(
              base_operator=tf.linalg.LinearOperatorDiag(
                  covariance_diag_factor, is_positive_definite=True
              ),
              u=covariance_perturb_factor,
          )
          return (
              MultivariateNormalLowRankUpdateLinearOperatorCovariance(
                  loc=loc, cov_operator=cov_operator, validate_args=True
              )
          )
  
      @tf.function(jit_compile=True)
      def _get_shapes():
          mvn = _make_mvn()
          return {
              "event_shape": tf.convert_to_tensor(mvn.event_shape),
              "batch_shape": tf.convert_to_tensor(mvn.batch_shape),
          }
  
      return _get_shapes()
  
imports: import collections
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import mvn_low_rank_update_linear_operator_covariance
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.stats import sample_stats
label_desc: Use image node_id 1 for calling the MVNLowRankUpdateCovarianceJITShapes obj's underlying member method code with example usage: obj._get_mvn_shape_tensors(loc_shape, cov_diag_shape) and returns: _get_shapes, MultivariateNormalLowRankUpdateLinearOperatorCovariance, dict