提交 d22c596e authored 作者: Frederic Bastien's avatar Frederic Bastien

Doc that IfElse with test values evaluate both branches gh-4474.

上级 9088e375
...@@ -75,3 +75,12 @@ is not currently set by default to ``cvm``, it will be in the near future. ...@@ -75,3 +75,12 @@ is not currently set by default to ``cvm``, it will be in the near future.
There is no automatic optimization replacing a ``switch`` with a There is no automatic optimization replacing a ``switch`` with a
broadcasted scalar to an ``ifelse``, as this is not always faster. See broadcasted scalar to an ``ifelse``, as this is not always faster. See
this `ticket <http://www.assembla.com/spaces/theano/tickets/764>`_. this `ticket <http://www.assembla.com/spaces/theano/tickets/764>`_.
.. note::
If you use :ref:`test values <test_values>`, then all branches of
the IfElse will be computed. This is normal, as using test_value
means everything will be computed when we build it, due to Python's
greedy evaluation and the semantic of test value. As we build both
branches, they will be executed for test values. This doesn't cause
any changes during the execution of the compiled Theano function.
...@@ -84,6 +84,8 @@ We can here see that the error can be traced back to the line ``z = z + y``. ...@@ -84,6 +84,8 @@ We can here see that the error can be traced back to the line ``z = z + y``.
For this example, using ``optimizer=fast_compile`` worked. If it did not, For this example, using ``optimizer=fast_compile`` worked. If it did not,
you could set ``optimizer=None`` or use test values. you could set ``optimizer=None`` or use test values.
.. _test_values:
Using Test Values Using Test Values
----------------- -----------------
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论