utils – Friendly random numbers#
PyTensor assigns NumPy RNG states (e.g.
RandomState objects) to
RandomVariable. The combination of an RNG state, a specific
RandomVariable type (e.g.
NormalRV), and a set of distribution parameters
uniquely defines the
RandomVariable instances in a graph.
This means that a “stream” of distinct RNG states is required in order to
produce distinct random variables of the same kind.
RandomStream provides a
means of generating distinct random variables in a fully reproducible way.
RandomStream is also designed to produce simpler graphs and work with more
Scan, which makes it the de facto random variable
interface in PyTensor.
For an example of how to use random numbers, see Using Random Numbers.
- class pytensor.tensor.random.utils.RandomStream#
This is a symbolic stand-in for
a list of all the (state, new_state) update pairs for the random variables created by this object
This can be a convenient shortcut to enumerating all the random variables in a large graph in the
meta_seedwill be used to seed a temporary random number generator, that will in turn generate seeds for all random variables created by this object (via
- gen(op, *args, **kwargs)#
Return the random variable from
This function also adds the returned variable to an internal list so that it can be seeded later by a call to
- uniform, normal, binomial, multinomial, random_integers, ...