问题描述
如何打印aano TensorVariable的数值?
我是新来的,所以请耐心等待:)
我有一个函数,我将 y
作为参数。
现在我想调试 - 将这个 y
的形状打印到控制台。
使用
打印y.shape
导致控制台输出(我期待的数字,即(2,4,4)
):
Shape.0
或者如何打印例如以下代码的数值结果(这将计算 y
中的多少值大于最大值的一半):
errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0))
errorCount
应该是一个单一的号码,因为 T.sum
总结所有的值。
但是使用
print errCount
给我(预期像 134
):
Sum.0
如果y是一个变量,y.shape将是一个变量。所以这是正常的
打印y.shape
返回:
Shape.0
如果要评估y.shape表达式,可以执行以下操作:
y.shape.eval()
if y.shape
不输入计算本身(它只取决于共享变量和常量)。否则,如果 y
取决于 x
Theano变量,您可以传递这样的输入值:
y.shape.eval(x = numpy.random.rand(...))
/ pre>
这与
总和
相同。在使用theano.function
或调用eval()
之前,您将无法执行计算的符号变量是符号变量
编辑:根据,较新版本的theano的语法是
y.shape.eval({x:numpy.random.rand(...)})
How can I print the numerical value of a theano TensorVariable?I'm new to theano, so please be patient :)
I have a function where I get
y
as a parameter.Now I want to debug-print the shape of thisy
to the console.Usingprint y.shape
results in the console output (i was expecting numbers, i.e.
(2,4,4)
):Shape.0
Or how can I print the numerical result of for example the following code (this counts how many values in
y
are bigger than half the maximum):errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0))
errorCount
should be a single number becauseT.sum
sums up all the values.But usingprint errCount
gives me (expected something like
134
):Sum.0
解决方案If y is a theano variable, y.shape will be a theano variable. so it is normal that
print y.shape
return:
Shape.0
If you want to evaluate the expression y.shape, you can do:
y.shape.eval()
if
y.shape
do not input to compute itself(it depend only on shared variable and constant). Otherwise, ify
depend on thex
Theano variable you can pass the inputs value like this:y.shape.eval(x=numpy.random.rand(...))
this is the same thing for the
sum
. Theano graph are symbolic variable that do not do computation until you compile it withtheano.function
or calleval()
on them.EDIT: Per the docs, the syntax in newer versions of theano is
y.shape.eval({x: numpy.random.rand(...)})
这篇关于TensorVariable的印刷值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!