【问题标题】:Theano matrix multiplicationTheano 矩阵乘法
【发布时间】:2015-02-11 19:27:58
【问题描述】:

我有一段代码应该计算一个简单的 矩阵乘积,在 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)

【问题讨论】:

    标签: python matrix shared theano


    【解决方案1】:

    这对我有用。所以我的猜测是你的 blas 安装有问题。确保使用 Theano 开发版本:

    http://deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions

    对于某些配置,它有更好的默认值。如果这不能解决问题,请查看错误消息。在代码转储之后有主要部分。在堆栈跟踪之后。这通常是最有用的。

    您可以使用以下 Theano 标志禁用 Theano 与 blas 的直接链接:blas.ldflags=

    这可能会导致速度变慢。但这是确认问题是否存在的快速检查。

    如果您需要更多帮助,请将错误消息转储到文本文件中,并将其放到网络上并从此处链接到它。

    【讨论】:

    • 如何设置这个标志?只是 python -c 'blas.ldflags='
    • 因为它对您有用,所以接受答案很棒。对于其他,设置 Theano 标志,这是定义操作系统环境变量THEANO_FLAGS=blas.ldflags=... 的一种方式。更多细节和替代文档deeplearning.net/software/theano/library/config.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 2018-04-11
    • 2017-03-11
    • 2013-12-23
    • 2014-09-19
    相关资源
    最近更新 更多