def set_gen(self, gen): from pymc3.data import GeneratorAdapter if not isinstance(gen, GeneratorAdapter): gen = GeneratorAdapter(gen) if not gen.tensortype == self.generator.tensortype: raise ValueError("New generator should yield the same type") self.generator = gen
def __init__(self, gen, default=None): from pymc3.data import GeneratorAdapter super().__init__() if not isinstance(gen, GeneratorAdapter): gen = GeneratorAdapter(gen) self.generator = gen self.set_default(default)
def test_ndim(self): for ndim in range(10): res = list(itertools.islice(integers_ndim(ndim), 0, 2)) generator = GeneratorAdapter(integers_ndim(ndim)) gop = GeneratorOp(generator)() f = theano.function([], gop) assert ndim == res[0].ndim np.testing.assert_equal(f(), res[0]) np.testing.assert_equal(f(), res[1])
def test_basic(self): generator = GeneratorAdapter(integers()) gop = GeneratorOp(generator)() assert gop.tag.test_value == np.float32(0) f = theano.function([], gop) assert f() == np.float32(0) assert f() == np.float32(1) for _ in range(2, 100): f() assert f() == np.float32(100)