def test_vectorized_SGLD(self):
        np.random.seed(0)
        X = np.arange(5)-2.0
        b=2.31
        a = 0.01584
        epsilons = a*(b+np.arange(5))**(-0.55)


        r1 = evSGLD(manual_grad,grad_log_prior,X,n=1,epsilons=epsilons,theta=np.array([1.,1.3]))
        np.random.seed(0)
        r2 = SGLD(manual_grad,grad_log_prior,X,n=1,chain_size=5,theta=np.array([1.,1.3]))


        assert_almost_equal(r1,r2)
Ejemplo n.º 2
0
    def test_vectorized_SGLD(self):
        np.random.seed(0)
        X = np.arange(5) - 2.0
        b = 2.31
        a = 0.01584
        epsilons = a * (b + np.arange(5))**(-0.55)

        r1 = evSGLD(manual_grad,
                    grad_log_prior,
                    X,
                    n=1,
                    epsilons=epsilons,
                    theta=np.array([1., 1.3]))
        np.random.seed(0)
        r2 = SGLD(manual_grad,
                  grad_log_prior,
                  X,
                  n=1,
                  chain_size=5,
                  theta=np.array([1., 1.3]))

        assert_almost_equal(r1, r2)
    SAMPLE_SIZE
from sgld_test.likelihoods import gen_X, log_probability


import numpy as np



np.random.seed(SEED)
X = gen_X(SAMPLE_SIZE)


def vectorized_log_density(theta):
     return log_probability(theta,X)

t1 = time()


sample = []
no_chains = NUMBER_OF_TESTS * NO_OF_SAMPELS_IN_TEST

for i in range(no_chains):
    if i % (100) == 0:
        print(float(i)*100.0/no_chains)
        print(time()-t1)
    sample.append(evSGLD(manual_grad, grad_log_prior, X, n=1, chain_size=SGLD_CHAIN_SIZE,theta = np.random.randn(2) ) )

sample = np.array(sample)

np.save('samples.npy',sample)
import numpy as np

np.random.seed(SEED)
X = gen_X(SAMPLE_SIZE)


def vectorized_log_density(theta):
    return log_probability(theta, X)


t1 = time()

sample = []
no_chains = NUMBER_OF_TESTS * NO_OF_SAMPELS_IN_TEST

for i in range(no_chains):
    if i % (100) == 0:
        print(float(i) * 100.0 / no_chains)
        print(time() - t1)
    sample.append(
        evSGLD(manual_grad,
               grad_log_prior,
               X,
               n=1,
               chain_size=SGLD_CHAIN_SIZE,
               theta=np.random.randn(2)))

sample = np.array(sample)

np.save('samples.npy', sample)