test_exclusive_kl.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:zhusuan 作者: thu-ml 项目源码 文件源码
def test_objective(self):
        log_qx = stats.norm.logpdf(self._n01_samples).astype(np.float32)
        qx_samples = tf.convert_to_tensor(self._n01_samples)
        log_qx = tf.convert_to_tensor(log_qx)

        def _check_elbo(x_mean, x_std):
            # check their elbo
            def log_joint(observed):
                norm = Normal(mean=x_mean, std=x_std)
                return norm.log_prob(observed['x'])

            lower_bound = elbo(log_joint, observed={},
                               latent={'x': [qx_samples, log_qx]}, axis=0)
            analytic_lower_bound = -_kl_normal_normal(0., 1., x_mean, x_std)
            with self.test_session(use_gpu=True) as sess:
                a = sess.run(lower_bound)
                b = sess.run(analytic_lower_bound)
                # print(a, b)
                self.assertNear(a, b, 1e-2)

        _check_elbo(0., 1.)
        _check_elbo(2., 3.)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号