def test_uniform_w_params(): s_rng = RandomStreams(234) u = s_rng.uniform(low=-0.999, high=9.001) p0 = rv.lpdf(u, 0) p1 = rv.lpdf(u, 2) p05 = rv.lpdf(u, -1.5) pn1 = rv.lpdf(u, 10) f = theano.function([], [p0, p1, p05, pn1]) pvals = f() targets = numpy.log(numpy.asarray([.1, .1, 0, 0])) assert numpy.allclose(pvals, targets), (pvals, targets)
def test_uniform_w_params(): s_rng = RandomStreams(234) u = s_rng.uniform(low=-0.999, high=9.001) p0 = rv.lpdf(u, 0) p1 = rv.lpdf(u, 2) p05 = rv.lpdf(u, -1.5) pn1 = rv.lpdf(u, 10) f = theano.function([], [p0, p1, p05, pn1]) pvals = f() targets = numpy.log(numpy.asarray([.1, .1, 0, 0])) assert numpy.allclose(pvals,targets), (pvals, targets)
def test_uniform_simple(): s_rng = RandomStreams(234) u = s_rng.uniform() p0 = rv.lpdf(u, 0) p1 = rv.lpdf(u, 1) p05 = rv.lpdf(u, 0.5) pn1 = rv.lpdf(u, -1) f = theano.function([], [p0, p1, p05, pn1]) pvals = f() targets = numpy.log(numpy.asarray([1.0, 1.0, 1.0, 0.0])) assert numpy.allclose(pvals, targets), (pvals, targets)
def test_uniform_simple(): s_rng = RandomStreams(234) u = s_rng.uniform() p0 = rv.lpdf(u, 0) p1 = rv.lpdf(u, 1) p05 = rv.lpdf(u, 0.5) pn1 = rv.lpdf(u, -1) f = theano.function([], [p0, p1, p05, pn1]) pvals = f() targets = numpy.log(numpy.asarray([1.0, 1.0, 1.0, 0.0])) assert numpy.allclose(pvals,targets), (pvals, targets)
class Fitting1D(unittest.TestCase): def setUp(self): self.obs = tensor.as_tensor_variable( numpy.asarray([0.0, 1.01, 0.7, 0.65, 0.3])) self.rstream = RandomStreams(234) self.n = self.rstream.normal() self.u = self.rstream.uniform() def test_normal_ml(self): up = self.rstream.ml(self.n, self.obs) p = self.rstream.params(self.n) f = theano.function([], [up[p[0]], up[p[1]]]) m,v = f() assert numpy.allclose([m,v], [.532, 0.34856276335]) def test_uniform_ml(self): up = self.rstream.ml(self.u, self.obs) p = self.rstream.params(self.u) f = theano.function([], [up[p[0]], up[p[1]]]) l,h = f() assert numpy.allclose([l,h], [0.0, 1.01])
class Fitting1D(unittest.TestCase): def setUp(self): self.obs = tensor.as_tensor_variable( numpy.asarray([0.0, 1.01, 0.7, 0.65, 0.3])) self.rstream = RandomStreams(234) self.n = self.rstream.normal() self.u = self.rstream.uniform() def test_normal_ml(self): up = self.rstream.ml(self.n, self.obs) p = self.rstream.params(self.n) f = theano.function([], [up[p[0]], up[p[1]]]) m, v = f() assert numpy.allclose([m, v], [.532, 0.34856276335]) def test_uniform_ml(self): up = self.rstream.ml(self.u, self.obs) p = self.rstream.params(self.u) f = theano.function([], [up[p[0]], up[p[1]]]) l, h = f() assert numpy.allclose([l, h], [0.0, 1.01])
import numpy, pylab import theano from theano import tensor from rstreams import RandomStreams import distributions from sample import mh2_sample from rv import full_log_likelihood s_rng = RandomStreams(3424) p = s_rng.dirichlet(numpy.asarray([1, 1]))[0] m1 = s_rng.uniform(low=-5, high=5) m2 = s_rng.uniform(low=-5, high=5) v = s_rng.uniform(low=0, high=1) C = s_rng.binomial(1, p, draw_shape=(4,)) m = tensor.switch(C, m1, m2) D = s_rng.normal(m, v, draw_shape=(4,)) D_data = numpy.asarray([1, 1.2, 3, 3.4], dtype=theano.config.floatX) givens = dict([(D, D_data)]) sampler = mh2_sample(s_rng, [p, m1, m2, v], givens) samples = sampler(200, 1000, 100) print samples[0].mean(), samples[1].mean(), samples[2].mean(), samples[3].mean()
import numpy, pylab import theano from theano import tensor from rstreams import RandomStreams import distributions from sample import mh2_sample from rv import full_log_likelihood s_rng = RandomStreams(3424) p = s_rng.dirichlet(numpy.asarray([1, 1]))[0] m1 = s_rng.uniform(low=-5, high=5) m2 = s_rng.uniform(low=-5, high=5) v = s_rng.uniform(low=0, high=1) C = s_rng.binomial(1, p, draw_shape=(4, )) m = tensor.switch(C, m1, m2) D = s_rng.normal(m, v, draw_shape=(4, )) D_data = numpy.asarray([1, 1.2, 3, 3.4], dtype=theano.config.floatX) givens = dict([(D, D_data)]) sampler = mh2_sample(s_rng, [p, m1, m2, v], givens) samples = sampler(200, 1000, 100) print samples[0].mean(), samples[1].mean(), samples[2].mean(), samples[3].mean( )