我需要用float64精度矩阵进行矩阵乘法。 以下代码适用于float32和matrix()而不是dmatrix()。 但是,当涉及到float64时,它会失败。
import theano
from theano import tensor as T
import numpy
x = numpy.ones((20000, 100), dtype=numpy.float64)
m = T.dmatrix()
mTm = T.dot(m.T, m)
f = theano.function([m], mTm)
f(x)
r = f(x)
r.shape
我有以下错误:
THEANO_FLAGS=device=gpu0 python test.py
Using gpu device 0: GeForce GTX 750 Ti
Traceback (most recent call last):
File "test.py", line 7, in <module>
f = theano.function([m], mTm)
File "c:\Python27\lib\site-packages\theano\compile\function.py", line 223, in function
...
ValueError: ('The following error happened while compiling the node', Dot22(Inpl
aceDimShuffle{1,0}.0, <TensorType(float64, matrix)>), '\n', 'invalid token in co
nfig.blas.ldflags', 'asdfadf')
make: *** [test] Error 1
我该如何解决这个问题?
答案 0 :(得分:2)
问题与GPU无关,但是你用于Theano标志的值blas.ldflags:'asdfadf'
再次编译时会传递给g ++。你没有把值g ++参数。
答案 1 :(得分:1)
查看the deep learning tutorial here以了解当前theano计算仅在通过float32
时受益于GPU。另请参阅邮件列表中的this thread。