Beispiel #1
0
 def test_gen_cloning_with_shape_change(self, datagen):
     gen = generator(datagen)
     gen_r = at_rng().normal(size=gen.shape).T
     X = gen.dot(gen_r)
     res, _ = aesara.scan(lambda x: x.sum(), X, n_steps=X.shape[0])
     assert res.eval().shape == (50, )
     shared = aesara.shared(datagen.data.astype(gen.dtype))
     res2 = aesara.clone_replace(res, {gen: shared**2})
     assert res2.eval().shape == (1000, )
Beispiel #2
0
 def rslice(self, total, size, seed):
     if size is None:
         return slice(None)
     elif isinstance(size, int):
         rng = pm.at_rng(seed)
         Minibatch.RNG[id(self)].append(rng)
         return rng.uniform(size=(size,), low=0.0, high=pm.floatX(total) - 1e-16).astype("int64")
     else:
         raise TypeError("Unrecognized size type, %r" % size)