2016-04-08 18 views
1

M x n x n x k boyutlarında 4-boyutlu bir "a" tensörü var. Ben şu tensör "b" elde etmek istiyorum: python kullanırken ben:Döngü olmadan teanda tensörde çift yönlü diyagonal nasıl alınır?

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

nasıl bir for döngüsü kullanmadan Theano koduna bu dönüştürebilir? n 500 civarındadır, bu yüzden sadece theano'da döngü yapmak için çöker.

cevap

2

bu deneyebilirsiniz:

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

Theano temelde Numpy's array indexing miras.

+0

Daha fazlasını açıklayabilir misiniz? – jezrael

+0

@jezrael Referans ekledim. – dontloo

+0

@dontloo Çok teşekkür ederim! Bu çalıştı! – user6175310

İlgili konular