Theano中的一些技巧

因为现在在调试程序的时候遇到了很多坑,所以现在写一点心得体会在这里

==========================================================================================

首先是一个  dimshuffle  这个东西可真是一个好东西啊  当你想让两个向量a,b相乘 得到外积的时候  可以这样

 a=a.dimshuffle('x',0)

 b=b.dimshuffle(0,'x')  

 a*b

这个'x'是broadca的意思 就是在这一维上面可以扩展,扩展的层数视它后来的操作而定

或者一个  a【5,7,100】的tensor和一个b【5,7】的矩阵相乘 其实只是想让前两维乘法  可以用 a*b.dimshuffle(0,1,'x')  这样b的第三维就扩展了 在算的时候就是100维

==========================================================================================


在GPU操作的时候,一个  32位浮点数和一个32位int相乘结果是一个 64位的浮点数!!!所以最好先把那个32 int转化成 float32,因为GPU只支持32位操作


==========================================================================================

使用GPU的操作是


THEANO_FLAGS=device=gpu0 python run.py

=========================================================================================

tensordot和batched_dot都很好用  要多用

尽量避免 cast  或者 dimshuffle  max这种操作在GPU上面很慢

留下您的评论

回复列表:

By王炳宁 on Nov. 22, 2016 | 类别 Python

关于本站