python - tutorial - time prediction lstm



Eingabe in LSTM-Netzwerk Tensorflow (1)

Ich habe eine Zeitreihe der Länge t (x0, ..., xt), jedes der xi ist ein d-Dimensionsvektor, dh xi = (x0i, x1i, ...., xdi). So ist meine Eingabe X von Form [batch_size, d]

Die Eingabe für den Tensorflow LSTM sollte die Größe [batchSize, hidden_size] haben. Meine Frage ist, wie sollte ich meine Zeitreihe in den LSTM eingeben. Eine mögliche Lösung, an die ich gedacht habe, ist, eine zusätzliche Gewichtsmatrix W der Größe [d, hidden_size] zu haben und das LSTM mit X * W + B einzugeben.

Ist das korrekt oder sollte ich etwas anderes in das Netz eingeben?

Vielen Dank


Deine Intuition ist korrekt; Was Sie benötigen (und was Sie beschrieben haben), ist eine Einbettung, um Ihren Eingabevektor in die Dimension Ihrer LSTM-Eingabe zu übersetzen. Es gibt drei Hauptwege, die ich kenne, um das zu erreichen.

  • Sie können dies manuell mit einer zusätzlichen Gewichtsmatrix W und einem Vorspannungsvektor b wie beschrieben durchführen.
  • Sie könnten die Gewichtungsmatrix und die Bias-Vektoren automatisch mit der Funktion linear() aus der TensorFlow-Bibliothek rnn_cell.py erstellen . rnn_decoder() Sie dann die Ausgabe dieser linearen Ebene als Eingabe für Ihr LSTM, wenn Sie Ihr LSTM über die Funktion rnn_decoder() in der seq2seq.py-Bibliothek von Tensorflow oder auf andere Weise erstellen .
  • Oder Sie können Tensorflow diese Einbettung erstellen lassen und sie automatisch mit den Eingängen Ihres LSTM verbinden, indem Sie den LSTM über die Funktion embedding_rnn_decoder() in Zeile 141 derselben seq2seq-Bibliothek erstellen. (Wenn Sie den Code für diese Funktion ohne optionale Argumente verfolgen, werden Sie sehen, dass sie einfach eine lineare Einbettungsschicht für die Eingabe sowie für das LSTM erstellt und sie miteinander verknüpft.)

Sofern Sie aus irgendeinem Grund nicht auf die einzelnen Komponenten zugreifen können, die Sie erstellen, würde ich die dritte Option empfehlen, um Ihren Code auf einem hohen Niveau zu halten.





recurrent-neural-network