Beispiel #1
0
def another_simple_model():
    _model = models.simple_model()[1]
    with _model:
        pm.Potential('pot', tt.ones((10, 10)))
    return _model
Beispiel #2
0
def test_dlogp():
    start, model, (mu, sig) = simple_model()
    dlogp = model.fastdlogp()
    close_to(dlogp(start), -(start["x"] - mu) / sig ** 2, 1.0 / sig ** 2 / 100.0)
            pm.Bernoulli('trials', p, observed=trials)
            trace = pm.sample(1000, step=pm.Metropolis())
            approx = Empirical(trace)
            approx.randidx(None).eval()
            approx.randidx(1).eval()
            approx.random_fn(no_rand=True)
            approx.random_fn(no_rand=False)
            approx.histogram_logp.eval()

    def test_init_from_noize(self):
        with models.multidimensional_model()[1]:
            approx = Empirical.from_noise(100)
            assert approx.histogram.eval().shape == (100, 6)


_model = models.simple_model()[1]
with _model:
    pm.Potential('pot', tt.ones((10, 10)))
    _advi = ADVI()
    _fullrank_advi = FullRankADVI()
    _svgd = SVGD()


@pytest.mark.parametrize(
    ['method', 'kwargs', 'error'],
    [('undefined', dict(), KeyError), (1, dict(), TypeError),
     (_advi, dict(start={}), None), (_fullrank_advi, dict(), None),
     (_svgd, dict(), None), ('advi', dict(), None),
     ('advi->fullrank_advi', dict(frac=.1), None),
     ('advi->fullrank_advi', dict(frac=1), ValueError),
     ('fullrank_advi', dict(), None), ('svgd', dict(), None),
Beispiel #4
0
def test_logp():
    start, model, (mu, sig) = simple_model()
    lp = model.fastlogp
    lp(start)
    close_to(lp(start), sp.norm.logpdf(start["x"], mu, sig).sum(), tol)
def another_simple_model():
    _model = models.simple_model()[1]
    with _model:
        pm.Potential('pot', tt.ones((10, 10)))
    return _model
Beispiel #6
0
 def setup_method(self):
     _, self.model, _ = simple_model()
            p = pm.Uniform('p')
            pm.Bernoulli('trials', p, observed=trials)
            trace = pm.sample(1000, step=pm.Metropolis())
            histogram = Histogram(trace)
            histogram.randidx(None).eval()
            histogram.randidx(1).eval()
            histogram.random_fn(no_rand=True)
            histogram.random_fn(no_rand=False)
            histogram.histogram_logp.eval()

    def test_init_from_noize(self):
        with models.multidimensional_model()[1]:
            histogram = Histogram.from_noise(100)
            assert histogram.histogram.eval().shape == (100, 6)

_model = models.simple_model()[1]
with _model:
    pm.Potential('pot', tt.ones((10, 10)))
    _advi = ADVI()
    _fullrank_advi = FullRankADVI()
    _svgd = SVGD()


@pytest.mark.parametrize(
    ['method', 'kwargs', 'error'],
    [
        ('undefined', dict(), KeyError),
        (1, dict(), TypeError),
        (_advi, dict(), None),
        (_fullrank_advi, dict(), None),
        (_svgd, dict(), None),
Beispiel #8
0
def test_accuracy_normal():
    _, model, (mu, _) = simple_model()
    with model:
        newstart = find_MAP(Point(x=[-10.5, 100.5]))
        close_to(newstart["x"], [mu, mu],
                 select_by_precision(float64=1e-5, float32=1e-4))