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, )
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)