神经网络:了解 theano 库
Neural Networks: Understanding theano Library
任何人都可以向我解释以下 python 代码的输出:
from theano import tensor as T
from theano import function, shared
a, b = T.dmatrices('a', 'b')
diff = a - b
abs_diff = abs(diff)
diff_squared = diff ** 2
f = function([a, b], [diff, abs_diff, diff_squared])
print f([[1, 1], [1, 1]], [[0, 1], [2, 3]])
测试功能
print f( [ [1,1],[1,1] ],
[ [0,1],[2,3] ])
Output: [ [[ 1., 0.], [-1., -2.]],
[[ 1., 0.], [ 1., 2.]],
[[ 1., 0.], [ 1., 4.]]]
您实际上是在告诉 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 魔法
Theano 实际上会解释您的 Python 代码,并推断给定变量所依赖的变量(或数学运算)。因此,如果您只对 diff_squared
输出感兴趣,则不需要也包含对 diff
和 abs_diff
的调用。
f = function([a, b], [diff_squared])
任何人都可以向我解释以下 python 代码的输出:
from theano import tensor as T
from theano import function, shared
a, b = T.dmatrices('a', 'b')
diff = a - b
abs_diff = abs(diff)
diff_squared = diff ** 2
f = function([a, b], [diff, abs_diff, diff_squared])
print f([[1, 1], [1, 1]], [[0, 1], [2, 3]])
测试功能
print f( [ [1,1],[1,1] ],
[ [0,1],[2,3] ])
Output: [ [[ 1., 0.], [-1., -2.]],
[[ 1., 0.], [ 1., 2.]],
[[ 1., 0.], [ 1., 4.]]]
您实际上是在告诉 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 魔法
Theano 实际上会解释您的 Python 代码,并推断给定变量所依赖的变量(或数学运算)。因此,如果您只对 diff_squared
输出感兴趣,则不需要也包含对 diff
和 abs_diff
的调用。
f = function([a, b], [diff_squared])