2016-04-08 4 views
1

私は、寸法がm×n×n×kの4次元テンソル「a」を持っています。私が持って使ってPython:私は、これはforループを使用せずにtheanoコードに変換することができますどのようにforループなしでtheanoのテンソルのpairwise対角を抽出するには?

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

私は、次のテンソル「b」を取得したいですか? nは約500ですので、私がtheanoでforループを実行するとクラッシュします。

答えて

2

あなたはこれを試すことができます。

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

Theanoは基本的にNumpy's array indexingを継承しています。

+0

もっと説明できますか? – jezrael

+0

@jezrael私は参照を追加しました。 – dontloo

+0

@dontlooありがとうございます!これはうまくいった! – user6175310