The function theano.scan
returns two outputs that are the result of the loop (usually called result
) and a dictionary of update that is usually called update
. See the signature below:
result, updates = theano.scan(fn, outputs_info, non_sequences=A)`
According to this tutorial (see example 1):
the second output details if and how the execution of the Scan updates any shared variable in the graph. It should be provided as an argument when compiling the Theano function.
It says later that:
If
updates
is omitted, the state of any shared variables modified byScan
will not be updated properly. Random number sampling, for instance, relies on shared variables. If updates is not provided, the state of the random number generator won’t be updated properly and the same numbers might be sampled repeatedly. Always provide updates when compiling your Theano function.
Now, when I look at the two example in the PyMC3 documentation about the use of scan
, we can see that update
is usually omitted (see for instance PyMC3 implementation using theano.scan on this page).
Isn’t it in contradiction with what is recommended in the theano documentation?
Thanks