当你无法平铺时,Theano减法

时间:2015-06-04 09:29:40

标签: theano

假设我们有一个nxm的theano矩阵X,另一个是nx1。我们想1 ok 2 ok 3 ok sum 140313777201982 ok ,但如果我们这样做,我们就会得到输入维度不匹配。我们可以尝试平铺你,但是tile只接受常量而不是变量。我们怎么做?

X-u

然后我收到错误import theano import theano.tensor as T X, u = T.dmatrices("X", "u") T.addbroadcast(u, 1) r = X - u f = theano.function([X, u], r) f([[1], [0]], [[1]])

1 个答案:

答案 0 :(得分:1)

X - u应该与您通过广播编写完全相同:

import theano
import theano.tensor as T

n = 10
m = 20

X = T.arange(n * m).reshape((n, m))
u = T.arange(0, n * m, m).reshape((n, 1))

r = X - u

r.eval()

与您更新的问题类似,您可以

import theano
import theano.tensor as T

X = T.dmatrix()
u = T.addbroadcast(T.dmatrix(), 1)

r = X - u

f = theano.function([X, u], r)

XX = np.arange(20.).reshape(2, 10)
uu = np.array([1., 100.]).reshape(2, 1)

f(XX, uu)