如何在没有for循环的情况下提取theano张量中的成对对角线?

How to extract pairwise diagonal in tensor in theano without for loop?

我有一个 4 维张量 "a",尺寸为 m x n x n x k。 我想获得以下张量 "b":使用 python 我有:

 b = [a[:,0,0,3:-3]]
 for i in xrange(1,n):
    b=numpy.concatenate((b,[a[:,i,i,3:-3]]))

如何在不使用 for 循环的情况下将其转换为 theano 代码? n 大约是 500,所以如果我只是在 theano 中执行 for 循环,它就会崩溃。

你可以试试这个:

i = theano.shared(numpy.asarray(range(n)))
b = a[:,i,i,3:-3]

Theano基本继承了Numpy's array indexing.