您实际上是在告诉Theano计算三个不同的函数,其中每个后续函数都取决于先前执行的函数的输出.
在您的示例中,您使用两个输入参数:矩阵A和矩阵B.
A = [[ 1, 1 ], [ 1, 1 ]] B = [[ 0, 1 ], [ 2, 3 ]]
第一个输出行:[[ 1., 0.], [-1., -2.]]
通过减去A和B矩阵来计算:
[[1, 1], - [[0, 1], = [[ 1, 0 ], [1, 1]] [2, 3]] [-1, -2]
第二个输出线[[ 1., 0.], [ 1., x2.]]
只是我们刚刚计算出的差值的绝对值:
abs [[ 1, 0 ], = [[ 1, 0], [-1, -2]] [ 1, 2]]
第三行和最后一行按元素计算平方值.
Theano实际上解释了您的Python代码,并推断出给定变量所依赖的变量(或数学运算).因此,如果你只对有兴趣的diff_squared
输出,你并不需要包括对呼叫diff
和abs_diff
太.
f = function([a, b], [diff_squared])