我有一段代码应该计算一个简单的 矩阵乘积,Python 语言(使用 theano)。我打算相乘的矩阵是一个共享变量。
该示例是演示我的问题的最小示例。
我使用了两个辅助函数。 floatX 将其输入转换为 theano.config.floatX 类型 init_weights 生成给定维度的随机矩阵(floatX 类型)。
最后一行导致代码崩溃。事实上,这会在命令行上强制输出太多内容,我什至无法再滚动到顶部。
那么,谁能告诉我我做错了什么?
def floatX(x):
return numpy.asarray(x,dtype=theano.config.floatX)
def init_weights(shape):
return floatX(numpy.random.randn(*shape))
a = init_weights([3,3])
b = theano.shared(value=a,name="b")
x = T.matrix()
y = T.dot(x,b)
f = theano.function([x],y)
最佳答案
这对我有用。所以我的猜测是你的 blas 安装有问题。确保使用 Theano 开发版本:
http://deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions
对于某些配置它有更好的默认值。如果这不能解决问题,请查看错误消息。主要部分是在代码转储之后。堆栈跟踪之后。这通常是最有用的。
您可以使用以下 Theano 标志禁用 Theano 与 blas 的直接链接:blas.ldflags=
这可能会导致速度变慢。但这是一个快速检查来确认问题是否存在。
如果您需要更多帮助,请将错误消息转储到文本文件并将其放在网络上并从此处链接到该文件。
关于python - Theano 矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462854/