vb.py 文件源码

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

项目:pymake 作者: dtrckd 项目源码 文件源码
def compute_expected_pzk0_qjensen(self, k):
        assert(k >= 0 and k < self._K)
        tau = self._tau[:, 0:k + 1]
        assert(tau.shape == (2, k + 1))

        psi_tau = scipy.special.psi(tau)
        assert(psi_tau.shape == (2, k + 1))

        psi_sum_tau = scipy.special.psi(numpy.sum(tau, axis=0))
        assert(len(psi_sum_tau) == k + 1)

        psi_tau0_cumsum = numpy.hstack([0, numpy.cumsum(psi_tau[0, :-1])])
        assert(len(psi_tau0_cumsum) == k + 1)

        psi_sum_cumsum = numpy.cumsum(psi_sum_tau)
        assert(len(psi_sum_cumsum) == k + 1)

        tmp = psi_tau[1, :] + psi_tau0_cumsum - psi_sum_cumsum
        assert(len(tmp) == k + 1)

        q = numpy.exp(tmp - numpy.max(tmp))
        assert(len(q) == k + 1)

        q = q / numpy.sum(q)
        assert(len(q) == k + 1)

        # compute the lower bound
        lower_bound = numpy.sum(q * (tmp - numpy.log(q)))

        return lower_bound
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号