Wie schalte ich theano.tensor zu numpy.array?

8

Ich habe einfache Codes wie unten gezeigt:

%Vor%

Ich erhalte jedoch die folgenden Fehlerinformationen:

%Vor%

Außerdem, wenn ich die Funktion desano.tensor verwende, scheint es, dass das, was es zurückgibt, "Tensor" genannt wird, und ich kann es nicht einfach auf den Typ numpy.array umschalten, auch wenn das Ergebnis wie aussehen sollte eine Matrix.

Das ist meine Frage: Wie kann ich outxx umschreiben, um numpy.array einzugeben?

    
user3633343 14.05.2014, 00:41
quelle

2 Antworten

3

Theano "Tensor" Variable sind symbolische Variable. Was Sie mit ihnen bauen, ist wie ein Programm, das Sie schreiben. Sie müssen eine Theano-Funktion kompilieren, um das Programm auszuführen. Es gibt 2 Möglichkeiten, eine Theano-Funktion zu kompilieren:

%Vor%

Wenn Sie eine Theano-Funktion kompilieren, müssen Sie angeben, was die Eingabe ist und was die Ausgabe ist. Deshalb gibt es 2 Parameter im Aufruf von theano.function (). eval () ist eine Schnittstelle, die eine Theano-Funktion für bestimmte symbolische Eingaben mit entsprechenden Werten kompiliert und ausführt.

    
nouiz 14.05.2014 16:58
quelle
1

Da testxx sum() von theano.tensor verwendet und nicht von numpy , erwartet es wahrscheinlich ein TensorVariable als Eingabe und kein numpy Array.

= & gt; Ersetzen Sie a = np.array(...) durch a = T.matrix(dtype=theano.config.floatX) .

Vor der letzten Zeile ist outxx dann ein TensorVariable , das von a abhängt. Sie können es also auswerten, indem Sie den Wert von a angeben.

= & gt; Ersetzen Sie Ihre letzte Zeile outxx = np.asarray(...) durch die folgenden zwei Zeilen.

%Vor%

Der folgende Code wird ohne Fehler ausgeführt.

%Vor%

Theano-Dokumentation zu Hinzufügen von Skalaren gibt andere ähnliche Beispiele.

    
xagg 07.08.2015 17:22
quelle

Tags und Links