这是代码:
>>> 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"?
就地计算是作为副作用而破坏其输入的计算。例如,如果您迭代矩阵并将每个元素加倍,则这是就地操作,因为完成后,原始输入已被覆盖。代表就地计算的操作具有破坏性,默认情况下,这些操作只能通过优化插入,而不能通过用户代码插入。
所以 no_inplace 正好相反。
来自http://deeplearning.net/software/theano/glossary.html#glossary