使用 theano 在矩阵中为每一行添加一行中的元素

Add the elements in a row, for each row, in a matrix, using theano

我有一个向量 v 和一个矩阵 z,比方说

v = theano.shared(rng.normal(0, 1, 10))
z = theano.shared(rng.normal(0, 1, (10, 10)))

我想创建一个新向量 y,由 v + z 的每一行中的元素之和给出。 基本上: y[i] = v[i] + T.sum(z[:,i]) 我可以为每个条目做:

y[i] = v[i] + theano.tensor.sum(z[:][i])

我的问题是:有没有一种方法,不用循环,就可以在一行中写出 y = v + T.sum(rows of z)?

你可以这样获取

y = v + z.sum(axis=1)

在 numpy 中,因此在 theano 中,有许多聚合器函数,例如 summeanvarstdanyall, ... 有一个 axis 关键字参数,有时甚至还有一个 axes 关键字参数,您可以使用它准确指定要遍历数组的方向。