Skip to content

Commit

Permalink
Document scan conventions in developer_documentation.rst (#448)
Browse files Browse the repository at this point in the history
  • Loading branch information
dylanhmorris authored Sep 18, 2024
1 parent ab8238a commit 98aa818
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion docs/source/developer_documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,14 @@ PyRenew Principles
- Using default site names in a ``RandomVariable`` is discouraged. Only use default site names at the ``Model`` level.
- Use ``DeterministicVariable``\ s instead of constants within a model.

- ``scan`` conventions

- Use ``jax.lax.scan`` for any scan whose iterations are deterministic, i.e. iterations contain no internal calls to ``RandomVariable.sample()`` or ``numpyro.sample()``.
- Use ``numpyro.scan`` for any scan whose the iterations are stochastic, i.e. the iterations potentially include calls to ``RandomVariable.sample()`` or ``numpyro.sample()``.

- Multidimensional array conventions

- In a multidimensional array of timeseries, time is always the first dimension. By default, ``numpyro.scan`` builds by augmenting the first dimension, and variables are often scanned over time, making default output of scan over time sensible.
- In a multidimensional array of timeseries, time is always the first dimension. By default, ``jax.lax.scan()`` and ``numpyro.contrib.control_flow.scan()`` build output arrays by augmenting the first dimension, and variables are often scanned over time, making default output of scan over time sensible.

Adding Documentation to Sphinx
------------------------------
Expand Down

0 comments on commit 98aa818

Please sign in to comment.