2016-04-27 8 views
0

Ich habe eine gemeinsame shano Variable Form (1, 500), aber wenn an eine Scan-Funktion übergeben die Form stellt sich heraus (1, 1, 500). Beispielcode-Snippet ist unten.Theano gemeinsame Variable hat falsche Form in Scan-Funktion

y_t1 = theano.shared(name='y_t1', value=np.zeros((1, 500), dtype=theano.config.floatX)) 

def forward(X, y_t1): 
    return y_t1 

(hyp), _ = theano.scan(fn=forward, sequences=X, outputs_info=[y_t1]) 

y_t1 mit Größe erstellt wird (1, 500) und meldet seine Form (1, 500), "vorwärts" außerhalb der Funktion sein, aber nach innen "vorwärts" hat Form (1, 1, 500). Warum passiert das?

Danke.

Antwort

0

Pass es in als

(hyp), _ = theano.scan(fn=forward, sequences=X, outputs_info=y_t1) 

sollte es funktioniert dann in Ordnung. (Ich habe die Klammern um y_t1 in outputs_info entfernt)

Erläuterung: Theano konvertiert, was auch immer Sie nach dem = zu einem Tensor übergeben. Wenn Sie also eine Liste übergeben, wird sie zuerst in einen Tensor dieser Form umgewandelt. Wenn Sie also [y_t1] übergeben, fügen Sie Ihrer Eingabe eine zusätzliche Dimension hinzu.