惰性评估.dot或其他theano函数

时间:2015-07-29 20:35:53

标签: python lazy-evaluation symbolic-math theano

我在python和theano非常新,所以这个问题可能很愚蠢。

我在文档中读到.dot会产生符号张量。我正在调试一些程序,我没有任何容器或任何东西看不到TensorVariable,我不知道如何从中获取值。

1 个答案:

答案 0 :(得分:1)

实际上不可能从符号变量中获取值,因为它们没有值;相反,他们代表稍后提供的价值。

考虑以下示例:

x = theano.tensor.matrix()
y = theano.tensor.matrix()
z = theano.dot(x, y)
f = theano.function(inputs=[x, y], outputs=z)
a = numpy.array([[1,2,3],[4,5,6]])
b = numpy.array([[1,2],[3,4],[5,6]])
c = f(a, b)

此处,xy是符号矩阵。它们没有值,但它们代替了在编译和执行计算之后提供的某些值。 abc是具有值的具体矩阵。 f = theano.function(...)行编译计算,c = f(...)执行该函数,为a提供名为x的值,并为{{1}提供名为b的值}};返回值y采用符号表达式c计算的值。