示例#1
0
def test_transforming():
    k = TEST_CASES[6][0]

    def vscaling_fn(x):
        return x.sum(dim=1)

    def iwarping_fn(x):
        return x**2

    owarping_coef = [2, 0, 1, 3, 0]

    K = k(X, Z)
    K_iwarp = k(iwarping_fn(X), iwarping_fn(Z))
    K_owarp = 2 + K**2 + 3 * K**3
    K_vscale = vscaling_fn(X).unsqueeze(1) * K * vscaling_fn(Z).unsqueeze(0)

    assert_equal(K_iwarp.data, Warping(k, iwarping_fn=iwarping_fn)(X, Z).data)
    assert_equal(K_owarp.data,
                 Warping(k, owarping_coef=owarping_coef)(X, Z).data)
    assert_equal(K_vscale.data,
                 VerticalScaling(k, vscaling_fn=vscaling_fn)(X, Z).data)
    assert_equal(K.exp().data, Exponent(k)(X, Z).data)

    # test get_subkernel
    k1 = Sum(Warping(k, iwarping_fn=iwarping_fn), TEST_CASES[7][0])
    assert k1.get_subkernel(k.name) is k
示例#2
0
def test_combination():
    k0 = TEST_CASES[0][0]
    k5 = TEST_CASES[5][0]  # TEST_CASES[1] is Brownian, only work for 1D
    k2 = TEST_CASES[2][0]
    k3 = TEST_CASES[3][0]
    k4 = TEST_CASES[4][0]

    k = Sum(Product(Product(Sum(Sum(k0, k5), k2), 2), k3), Sum(k4, 1))

    K = 2 * (k0(X, Z) + k5(X, Z) + k2(X, Z)) * k3(X, Z) + (k4(X, Z) + 1)

    assert_equal(K.data, k(X, Z).data)
示例#3
0
def test_combination():
    k0 = TEST_CASES[0][0]
    k5 = TEST_CASES[5][0]   # TEST_CASES[1] is Brownian, only work for 1D
    k2 = TEST_CASES[2][0]
    k3 = TEST_CASES[3][0]
    k4 = TEST_CASES[4][0]

    k = Sum(Product(Product(Sum(Sum(k0, k5), k2), 2), k3), Sum(k4, 1))

    K = 2 * (k0(X, Z) + k5(X, Z) + k2(X, Z)) * k3(X, Z) + (k4(X, Z) + 1)

    assert_equal(K.data, k(X, Z).data)

    # test get_subkernel
    assert k.get_subkernel(k5.name) is k5
示例#4
0
def test_transforming():
    k = TEST_CASES[6][0]

    def vscaling_fn(x):
        return x.sum(dim=1)

    def iwarping_fn(x):
        return x**2

    owarping_coef = [2, 0, 1, 3, 0]

    K = k(X, Z)
    K_iwarp = k(iwarping_fn(X), iwarping_fn(Z))
    K_owarp = 2 + K ** 2 + 3 * K ** 3
    K_vscale = vscaling_fn(X).unsqueeze(1) * K * vscaling_fn(Z).unsqueeze(0)

    assert_equal(K_iwarp.data, Warping(k, iwarping_fn=iwarping_fn)(X, Z).data)
    assert_equal(K_owarp.data, Warping(k, owarping_coef=owarping_coef)(X, Z).data)
    assert_equal(K_vscale.data, VerticalScaling(k, vscaling_fn=vscaling_fn)(X, Z).data)
    assert_equal(K.exp().data, Exponent(k)(X, Z).data)

    # test get_subkernel
    k1 = Sum(Warping(k, iwarping_fn=iwarping_fn), TEST_CASES[7][0])
    assert k1.get_subkernel(k.name) is k
示例#5
0
def test_active_dims_disjoint_ok():
    k1 = Matern52(2, variance, lengthscale[0], active_dims=[0, 1])
    k2 = Matern32(1, variance, lengthscale[0], active_dims=[2])
    Sum(k1, k2)
示例#6
0
def test_active_dims_overlap_ok():
    k1 = Matern52(2, variance, lengthscale[0], active_dims=[0, 1])
    k2 = Matern32(2, variance, lengthscale[0], active_dims=[1, 2])
    Sum(k1, k2)