def test_score_student_t_dbg_lp_equiv():
    seed_all(0)

    def random_vec(dim):
        return numpy.random.uniform(low=-3., high=3., size=dim)

    def random_cov(dim):
        Q = random_orthonormal_matrix(dim)
        return numpy.dot(Q, Q.T)

    def random_values(dim):
        return (random_vec(dim),
                float(dim) + 1.,
                random_vec(dim),
                random_cov(dim))

    values = (
        [random_values(2) for _ in xrange(10)] +
        [random_values(3) for _ in xrange(10)]
    )

    for x, nu, mu, cov in values:
        dbg_mv_score = dbg_score_student_t(x, nu, mu, cov)
        lp_mv_score = lp_score_student_t(x, nu, mu, cov)
        assert_close(dbg_mv_score, lp_mv_score)
def test_score_student_t_scalar_equiv():
    values = (
        (1.2, 5., -0.2, 0.7),
        (-3., 3., 1.2, 1.3),
    )
    for x, nu, mu, sigmasq in values:
        mv_args = [
            numpy.array([x]),
            nu,
            numpy.array([mu]),
            numpy.array([[sigmasq]])]

        scalar_score = scalar_score_student_t(x, nu, mu, sigmasq)
        dbg_mv_score = dbg_score_student_t(*mv_args)
        lp_mv_score = lp_score_student_t(*mv_args)

        assert_close(scalar_score, dbg_mv_score)
        assert_close(scalar_score, lp_mv_score)
        assert_close(dbg_mv_score, lp_mv_score)
示例#3
0
def test_score_student_t_scalar_equiv():
    values = (
        (1.2, 5., -0.2, 0.7),
        (-3., 3., 1.2, 1.3),
    )
    for x, nu, mu, sigmasq in values:
        mv_args = [
            numpy.array([x]), nu,
            numpy.array([mu]),
            numpy.array([[sigmasq]])
        ]

        scalar_score = scalar_score_student_t(x, nu, mu, sigmasq)
        dbg_mv_score = dbg_score_student_t(*mv_args)
        lp_mv_score = lp_score_student_t(*mv_args)

        assert_close(scalar_score, dbg_mv_score)
        assert_close(scalar_score, lp_mv_score)
        assert_close(dbg_mv_score, lp_mv_score)
示例#4
0
def test_score_student_t_dbg_lp_equiv():
    seed_all(0)

    def random_vec(dim):
        return numpy.random.uniform(low=-3., high=3., size=dim)

    def random_cov(dim):
        Q = random_orthonormal_matrix(dim)
        return numpy.dot(Q, Q.T)

    def random_values(dim):
        return (random_vec(dim), float(dim) + 1., random_vec(dim),
                random_cov(dim))

    values = ([random_values(2)
               for _ in xrange(10)] + [random_values(3) for _ in xrange(10)])

    for x, nu, mu, cov in values:
        dbg_mv_score = dbg_score_student_t(x, nu, mu, cov)
        lp_mv_score = lp_score_student_t(x, nu, mu, cov)
        assert_close(dbg_mv_score, lp_mv_score)