2016-04-08 51 views
1

Amaç, bir dizi dizinin alt kümesini başka bir dizide sağlanan değerler aracılığıyla elde etmektir.Theano'da 0/1 altçaplama nasıl yapılır?

import theano 
import theano.tensor as T 

a = T.vector('X', dtype='int64') 
b = T.vector('Y', dtype='int64') 
c = a[b] 
g = function([a,b],c) 

x = np.array([5,3,2,3,4,6], dtype=int) 
y = np.array([0,0,1,0,0,1], dtype=int) 
print g(x,y) 

Bu

[5 5 3 5 5 3] 

yerine

[2 6] 

Nasıl beklenen sonucu alabilirim yazdırır?

cevap

1

nonzero() işlevini kullanmayı deneyin. senin durumunda

Örnek:

import theano 
import theano.tensor as T 

a = T.vector('X', dtype='int64') 
b = T.vector('Y', dtype='int64') 
c = a[b.nonzero()] 
g = function([a,b],c) 

x = np.array([5,3,2,3,4,6], dtype=int) 
y = np.array([0,0,1,0,0,1], dtype=int) 
print g(x,y) 

o

+0

Harika yardımcı olur umarım! Tam da aradığım şey! Genellikle "numpy" dizileri için "astype (bool)" işlevini kullanacağım, ancak tensörler için bunu yapamadığım için endişelendim. Ayrıca, “noncoro()” nun “numpy” için de çalıştığını gözlemledim. Çok teşekkürler. Bu problem beni deli ediyordu. –

+2

memnuniyetle, size yardımcı olabildiğime sevindim :) – malioboro