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



我有一个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循环的情况下将其转换为无代码?n大约是500,所以如果我在图中做for循环,它就会崩溃。

你可以试试这个:

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

Theano基本上继承了Numpy的数组索引。

最新更新