Theano 有 Ops 和函数。
有什么区别?
函数看起来不错而且易于定义, 例如:
x = T.dmatrix('x')
linmax = function([x], T.maximum(x,0))
Ops 的定义似乎很复杂。所有抽象类等
但是像 theano.tesnor.tanh
和 theano.tensor.nnet.sigmoid
这样的东西被定义为 Ops。
我不确定两者之间的区别。
如何将上面的 linmax
函数写成 Op?
最佳答案
theano.function() 返回一个可调用的 python 对象。因此,您可以使用它进行调用时描述的计算。
Theano Ops 是描述您想要的计算的符号图的一部分。不要忘记 Theano 与 C 和其他语言一样多两步。您首先需要描述所需的计算,然后进行编译。在 C 中,您在文本文件中定义该计算。在 Theano 中,您可以使用 Theano 符号图来描述它,并且该图包括 Ops。
然后你编译,在 C 中可能使用 gcc,在 Theano 中使用 theano.function()。
所以 Op 是符号图的元素 op。它描述了在图中某一点完成的计算。 Theano 教程中的此页面更详细地描述了图表:
http://deeplearning.net/software/theano/tutorial/symbolic_graphs.html#theano-graphs
本页描述了如何在 Theano 中创建一个 Op:
http://deeplearning.net/software/theano/tutorial/extending_theano.html
您可以跳过可选部分的部分。因此,如果您不打算制作一个页面而只想了解用法,则可以跳过该页面的大部分内容。
关于python - Op 和 Function 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237812/