def test_aevb_empirical(self):
     _, model, _ = models.exponential_beta(n=2)
     x = model.x
     mu = theano.shared(x.init_value)
     rho = theano.shared(np.zeros_like(x.init_value))
     with model:
         inference = ADVI(local_rv={x: (mu, rho)})
         approx = inference.approx
         trace0 = approx.sample(10000)
         approx = Empirical(trace0, local_rv={x: (mu, rho)})
         trace1 = approx.sample(10000)
         approx.random(no_rand=True)
         approx.random_fn(no_rand=True)
     np.testing.assert_allclose(trace0['y'].mean(0),
                                trace1['y'].mean(0),
                                atol=0.02)
     np.testing.assert_allclose(trace0['y'].var(0),
                                trace1['y'].var(0),
                                atol=0.02)
     np.testing.assert_allclose(trace0['x'].mean(0),
                                trace1['x'].mean(0),
                                atol=0.02)
     np.testing.assert_allclose(trace0['x'].var(0),
                                trace1['x'].var(0),
                                atol=0.02)
Esempio n. 2
0
 def test_aevb(self):
     _, model, _ = models.exponential_beta()
     x = model.x
     y = model.y
     mu = theano.shared(x.init_value) * 2
     sd = theano.shared(x.init_value) * 3
     with model:
         inference = self.inference(local_rv={y: (mu, sd)})
         inference.fit(3)
Esempio n. 3
0
def test_multiple_replacements(inference_spec):
    _, model, _ = models.exponential_beta(n=2)
    x = model.x
    y = model.y
    xy = x * y
    xpy = x + y
    with model:
        ap = inference_spec().approx
        xy_, xpy_ = ap.apply_replacements([xy, xpy])
        xy_s, xpy_s = ap.sample_node([xy, xpy])
        xy_.eval()
        xpy_.eval()
        xy_s.eval()
        xpy_s.eval()
 def test_multiple_replacements(self):
     _, model, _ = models.exponential_beta(n=2)
     x = model.x
     y = model.y
     xy = x * y
     xpy = x + y
     with model:
         mf = self.inference().approx
         xy_, xpy_ = mf.apply_replacements([xy, xpy])
         xy_s, xpy_s = mf.sample_node([xy, xpy])
         xy_.eval()
         xpy_.eval()
         xy_s.eval()
         xpy_s.eval()
def test_multiple_replacements(inference_spec):
    _, model, _ = models.exponential_beta(n=2)
    x = model.x
    y = model.y
    xy = x*y
    xpy = x+y
    with model:
        ap = inference_spec().approx
        xy_, xpy_ = ap.apply_replacements([xy, xpy])
        xy_s, xpy_s = ap.sample_node([xy, xpy])
        xy_.eval()
        xpy_.eval()
        xy_s.eval()
        xpy_s.eval()
Esempio n. 6
0
 def test_multiple_replacements(self):
     _, model, _ = models.exponential_beta(n=2)
     x = model.x
     y = model.y
     xy = x*y
     xpy = x+y
     with model:
         mf = self.inference().approx
         xy_, xpy_ = mf.apply_replacements([xy, xpy])
         xy_s, xpy_s = mf.sample_node([xy, xpy])
         xy_.eval()
         xpy_.eval()
         xy_s.eval()
         xpy_s.eval()
def test_aevb_empirical():
    _, model, _ = models.exponential_beta(n=2)
    x = model.x
    mu = theano.shared(x.init_value)
    rho = theano.shared(np.zeros_like(x.init_value))
    with model:
        inference = ADVI(local_rv={x: (mu, rho)})
        approx = inference.approx
        trace0 = approx.sample(10000)
        approx = Empirical(trace0, local_rv={x: (mu, rho)})
        trace1 = approx.sample(10000)
    np.testing.assert_allclose(trace0['y'].mean(0), trace1['y'].mean(0), atol=0.02)
    np.testing.assert_allclose(trace0['y'].var(0), trace1['y'].var(0), atol=0.02)
    np.testing.assert_allclose(trace0['x'].mean(0), trace1['x'].mean(0), atol=0.02)
    np.testing.assert_allclose(trace0['x'].var(0), trace1['x'].var(0), atol=0.02)
 def test_aevb(self):
     _, model, _ = models.exponential_beta(n=2)
     x = model.x
     y = model.y
     mu = theano.shared(x.init_value) * 2
     rho = theano.shared(np.zeros_like(x.init_value))
     with model:
         inference = self.inference(local_rv={y: (mu, rho)})
         approx = inference.fit(3, obj_n_mc=2)
         approx.sample_vp(10)
         approx.apply_replacements(y,
                                   more_replacements={
                                       x: np.asarray([1, 1],
                                                     dtype=x.dtype)
                                   }).eval()
Esempio n. 9
0
 def test_aevb_histogram(self):
     _, model, _ = models.exponential_beta(n=2)
     x = model.x
     mu = theano.shared(x.init_value)
     rho = theano.shared(np.zeros_like(x.init_value))
     with model:
         inference = ADVI(local_rv={x: (mu, rho)})
         approx = inference.approx
         trace0 = approx.sample_vp(10000)
         histogram = Histogram(trace0, local_rv={x: (mu, rho)})
         trace1 = histogram.sample_vp(10000)
         histogram.random(no_rand=True)
         histogram.random_fn(no_rand=True)
     np.testing.assert_allclose(trace0['y'].mean(0), trace1['y'].mean(0), atol=0.02)
     np.testing.assert_allclose(trace0['y'].var(0), trace1['y'].var(0), atol=0.02)
     np.testing.assert_allclose(trace0['x'].mean(0), trace1['x'].mean(0), atol=0.02)
     np.testing.assert_allclose(trace0['x'].var(0), trace1['x'].var(0), atol=0.02)