在theano中'no_inplace'是什么意思?

Abh*_*hek 5 theano

这是代码:

>>> a = T.dscalar("a")
>>> b = a+2
>>> b
Run Code Online (Sandbox Code Playgroud)

而输出是

Elemwise{add,no_inplace}.0
Run Code Online (Sandbox Code Playgroud)

add表明apply节点具有add作为操作.

但是no_inplace意味着什么?为什么我们在输出结尾有一个".0"?

Abh*_*hek 4

就地计算是作为副作用而破坏其输入的计算。例如,如果您迭代矩阵并将每个元素加倍,则这是就地操作,因为完成后,原始输入已被覆盖。代表就地计算的操作具有破坏性,默认情况下,这些操作只能通过优化插入,而不能通过用户代码插入。

所以 no_inplace 正好相反。

来自http://deeplearning.net/software/theano/glossary.html#glossary