假设我们有一个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]])
答案 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)