提交 75b4dd18 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Update RandomStream documentation

上级 c19ac799
...@@ -12,16 +12,20 @@ ...@@ -12,16 +12,20 @@
Guide Guide
===== =====
Since Aesara uses a functional design, producing pseudo-random numbers in a Aesara assignes NumPy RNG states (e.g. `Generator` or `RandomState` objects) to
graph is not quite as straightforward as it is in numpy. each `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.
The way to think about putting randomness into Aesara's computations is to This means that a "stream" of distinct RNG states is required in order to
put random variables in your graph. Aesara will allocate a numpy RandomState produce distinct random variables of the same kind. `RandomStream` provides a
object for each such variable, and draw from it as necessary. We will call this sort of sequence of means of generating distinct random variables in a fully reproducible way.
random numbers a *random stream*.
For an example of how to use random numbers, see `RandomStream` is also designed to produce simpler graphs and work with more
:ref:`Using Random Numbers <using_random_numbers>`. sophisticated `Op`\s like `Scan`, which makes it the de facto random variable
interface in Aesara.
For an example of how to use random numbers, see :ref:`Using Random Numbers <using_random_numbers>`.
Reference Reference
...@@ -29,7 +33,7 @@ Reference ...@@ -29,7 +33,7 @@ Reference
.. class:: RandomStream() .. class:: RandomStream()
This is a symbolic stand-in for ``numpy.random.RandomState``. This is a symbolic stand-in for `numpy.random.Generator`.
.. method:: updates() .. method:: updates()
...@@ -37,7 +41,8 @@ Reference ...@@ -37,7 +41,8 @@ Reference
random variables created by this object random variables created by this object
This can be a convenient shortcut to enumerating all the random This can be a convenient shortcut to enumerating all the random
variables in a large graph in the ``update`` parameter of function. variables in a large graph in the ``update`` argument to
`aesara.function`.
.. method:: seed(meta_seed) .. method:: seed(meta_seed)
...@@ -49,9 +54,7 @@ Reference ...@@ -49,9 +54,7 @@ Reference
.. method:: gen(op, *args, **kwargs) .. method:: gen(op, *args, **kwargs)
Return the random variable from `op(*args, **kwargs)`, but Return the random variable from ``op(*args, **kwargs)``.
also install special attributes (``.rng`` and ``update``, see
:class:`RandomVariable` ) into it.
This function also adds the returned variable to an internal list so This function also adds the returned variable to an internal list so
that it can be seeded later by a call to `seed`. that it can be seeded later by a call to `seed`.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论