本文介绍了TensorVariable的印刷值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何打印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 this y to the console.Using

print 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 because T.sum sums up all the values.But using

print 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, if y depend on the x 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 with theano.function or call eval() on them.

EDIT: Per the docs, the syntax in newer versions of theano is

y.shape.eval({x: numpy.random.rand(...)})

这篇关于TensorVariable的印刷值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 19:14