因为现在在调试程序的时候遇到了很多坑,所以现在写一点心得体会在这里
==========================================================================================
首先是一个 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上面很慢
回复列表: