2017年7月10日星期一

theano调试心得

      笔者最近在公司做一个基于theano框架的项目,由于之前已经写成了一定的基础,有很多地方不知道什么意思。程序员们都知道,现在我们要打印出来看看啦!
      但是theano真的很难调试,因为有很多值打印不出来,笔记搜索了官方文档和一些文档,最后总结如下,希望可以给您一些启示:

在theano中,有两种类型的变量TensorSharedVariable类型和TensorVariable类型。
对于TensorShardVariable类型的变量,可以直接用get_value()函数来获取该类型的值,使用如下:
import theano
import theano.tensor as T
x = T.shard(1)

>>type(x)     <class 'theano.tensor.sharedVar.ScalarSharedVariable'>
>>x.get_value()  1

对于TensorVariable类型变量
import theano
import theano.tensor as T
x = T.vector()
z = x+x

z= theano.printing.Print('z')(z)  //这样就可以打印出来

由于theano的TensorShardVariable并没有值,通过这样的方式打印,它是一次性输出经过该变量的所有数据。悲剧的是笔者在一家大数据公司, theano一次性会打印出相当多的东西,往往终端上不能全完显示,所以笔者在这里教大家一种很low但是很方便的方式。

运行程序,并且输出到记事本:

python main.py >tmp.txt
如此,就可以很方便的调试theano了。





没有评论:

发表评论

leetcode 17

17.   Letter Combinations of a Phone Number Medium Given a string containing digits from   2-9   inclusive, return all possible l...