2017-03-29 4 views
3

Ich bin verwirrt über was dynamische RNN (d. H. dynamic_rnn) ist. Es gibt einen Ausgang und einen Zustand in TensorFlow zurück. Was sind das für Staat und Output? Was ist dynamisch in einem dynamischen RNN, in TensorFlow?Was ist eine dynamische RNN in TensorFlow?

Antwort

5

Dynamische RNNs ermöglichen variable Sequenzlängen. Möglicherweise haben Sie eine Eingabeform (batch_size, max_sequence_length), aber dies wird Ihnen ermöglichen, die RNN für die richtige Anzahl von Zeitschritten für die Sequenzen auszuführen, die kürzer als max_sequence_length sind.

Im Gegensatz dazu gibt es statische RNNs, die erwarten, dass die gesamte feste RNN-Länge läuft. Es gibt Fälle, in denen Sie dies vielleicht bevorzugen, etwa wenn Sie Ihre Eingaben trotzdem auf max_sequence_length auffüllen.

Kurz gesagt, dynamic_rnn ist normalerweise, was Sie für sequentielle Daten variabler Länge wollen. Es hat einen sequence_length Parameter, und es ist dein Freund.

+1

was ist state und output? können Sie erklären? – xlax

1

Während AlexDelPieros Antwort das war, nach dem ich suchte, war die ursprüngliche Frage anders. Sie können sich diese detaillierte Beschreibung über LSTMs und deren Intuition ansehen. LSTM ist das häufigste Beispiel für eine RNN.

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Die kurze Antwort ist: der Staat ein internes Detail ist, die von einem Zeitschritt zu einem anderen übergeben wird. Die Ausgabe ist ein Tensor von Ausgaben bei jedem Zeitschritt. In der Regel müssen Sie alle Ausgaben an die nächste RNN-Schicht oder die letzte Ausgabe für die letzte RNN-Schicht übergeben. Um die letzte Ausgabe zu erhalten, können Sie den Ausgang [:, - 1 ,:] verwenden

Verwandte Themen