Beispiel #1
0
    def multivariate_normal_cholesky(self,
                                     name,
                                     mean,
                                     cov_tril,
                                     n_samples=None,
                                     group_ndims=0,
                                     is_reparameterized=True,
                                     check_numerics=False,
                                     **kwargs):
        """
        Add a stochastic node in this :class:`BayesianNet` that follows the
        MultivariateNormalCholesky distribution.

        :param name: The name of the stochastic node. Must be unique in a
            :class:`BayesianNet`.

        See
        :class:`~zhusuan.distributions.multivariate.MultivariateNormalCholesky`
        for more information about the other arguments.

        :return: A :class:`StochasticTensor` instance.
        """
        dist = distributions.MultivariateNormalCholesky(
            mean,
            cov_tril,
            group_ndims,
            is_reparameterized=is_reparameterized,
            check_numerics=check_numerics,
            **kwargs)
        return self.stochastic(name, dist, n_samples=n_samples, **kwargs)
Beispiel #2
0
 def __init__(self,
              name,
              mean,
              cov_tril,
              n_samples=None,
              group_ndims=0,
              is_reparameterized=True,
              check_numerics=False,
              **kwargs):
     mvn = distributions.MultivariateNormalCholesky(
         mean,
         cov_tril,
         group_ndims,
         is_reparameterized=is_reparameterized,
         check_numerics=check_numerics,
         **kwargs)
     super(MultivariateNormalCholesky, self).__init__(name, mvn, n_samples)