Exemple #1
0
def test_uniform_measure_shapes():

    N = 5
    bounds = [(-1, 1), (0, 2), (1.3, 5.)]
    D = len(bounds)
    x = np.reshape(np.random.randn(D * N), [N, D])

    measure = UniformMeasure(bounds)

    bounds = measure.get_box()
    assert len(bounds) == D
    assert len(bounds[0]) == 2

    res = measure.compute_density(x)
    assert res.shape == (N, )
Exemple #2
0
def test_uniform_measure_gradients():
    measure_bounds = [(-1, 2), (0, 1)]
    measure = UniformMeasure(bounds=measure_bounds)

    N = 3
    D = len(measure_bounds)
    x = np.reshape(np.random.randn(D * N), [N, D])
    _check_grad(measure, x)
def qrbf_uniform_infinite():
    x1 = np.array([[-1, 1], [0, 0], [-2, 0.1]])
    x2 = np.array([[-1, 1], [0, 0], [-2, 0.1], [-3, 3]])
    M1 = x1.shape[0]
    M2 = x2.shape[0]
    D = x1.shape[1]

    # measure
    measure_bounds = [(0, 2), (-4, 3)]
    measure = UniformMeasure(bounds=measure_bounds)

    gpy_kernel = GPy.kern.RBF(input_dim=D)
    emukit_rbf = RBFGPy(gpy_kernel)
    emukit_qrbf = QuadratureRBFUniformMeasure(rbf_kernel=emukit_rbf,
                                              integral_bounds=None,
                                              measure=measure)
    return emukit_qrbf, x1, x2, M1, M2, D
Exemple #4
0
def test_uniform_measure_wrong_bounds():
    bounds = [(-1, 1), (3, 2), (1.3, 5.)]

    with pytest.raises(ValueError):
        UniformMeasure(bounds)
    x2 = np.array([[-1, 1], [0, 0], [-2, 0.1], [-3, 3]])
    D = x1.shape[1]

    gpy_kernel = GPy.kern.RBF(input_dim=D)
    emukit_rbf = RBFGPy(gpy_kernel)

    if MEASURE_INTBOUNDS == "Lebesgue-finite":
        emukit_qrbf = QuadratureRBFLebesgueMeasure(emukit_rbf,
                                                   integral_bounds=[(-1, 2),
                                                                    (-3, 3)])
    elif MEASURE_INTBOUNDS == "GaussIso-infinite":
        measure = IsotropicGaussianMeasure(mean=np.arange(D), variance=2.0)
        emukit_qrbf = QuadratureRBFIsoGaussMeasure(rbf_kernel=emukit_rbf,
                                                   measure=measure)
    elif MEASURE_INTBOUNDS == "Uniform-infinite":
        measure = UniformMeasure(bounds=[(0, 2), (-4, 3)])
        emukit_qrbf = QuadratureRBFUniformMeasure(emukit_rbf,
                                                  integral_bounds=None,
                                                  measure=measure)
    elif MEASURE_INTBOUNDS == "Uniform-finite":
        measure = UniformMeasure(bounds=[(1, 2), (-4, 2)])
        emukit_qrbf = QuadratureRBFUniformMeasure(emukit_rbf,
                                                  integral_bounds=[(-1, 2),
                                                                   (-3, 3)],
                                                  measure=measure)
    else:
        raise ValueError("Measure-integral-bounds combination not defined")

    print()
    print("measure: {}".format(MEASURE_INTBOUNDS))
    print("no dimensions: {}".format(D))