Heim > Backend-Entwicklung > Python-Tutorial > Wie funktionieren Stateful LSTMs mit einer Batchgröße von 1?

Wie funktionieren Stateful LSTMs mit einer Batchgröße von 1?

Linda Hamilton
Freigeben: 2024-11-05 20:10:03
Original
786 Leute haben es durchsucht

How do Stateful LSTMs work with a batch size of 1?

Keras Long Short Term Memories (LSTMs) verstehen

Umgestaltung von Daten und Stateful LSTMs

Umformen Daten

  • Die Datenreihe wird in [Proben, Zeitschritte, Features] umgeformt, um der LSTM-Schicht die Verarbeitung von Sequenzen von Zeitreihendaten zu ermöglichen.
  • Zeitschritte darstellen die Anzahl der Zeitpunkte in jeder Sequenz, während Features die verschiedenen Variablen oder Kanäle darstellen.

Stateful LSTMs

  • Zustandsbehaftete LSTMs behalten ihren internen Zustand über Stapel hinweg bei, sodass sie sich an frühere Ausgaben erinnern können.
  • Dies ist nützlich für Aufgaben, bei denen der Kontext aus früheren Zeitschritten wichtig ist Vorhersage zukünftiger Ereignisse.

Frage 1: Zeitschritte und Merkmale

  • Das Bild mit den rosa Kästchen veranschaulicht den Fall „viele zu eins“, bei dem die Anzahl der schwarzen Kästchen (Merkmale) 3 und die Anzahl der rosa Kästchen (Zeitschritte) beträgt Variable.
  • Das bedeutet, dass die Eingabesequenz 3 Features pro Zeitschritt enthält.

Frage 2: Zustandsbehaftete LSTMs

  • Im bereitgestellten Codebeispiel werden zustandsbehaftete LSTMs verwendet, aber „batch_size“ ist auf 1 gesetzt.
  • Dies bedeutet, dass das Modell auf einer Sequenz nach der anderen trainiert wird Zeit, und die Zellspeicherwerte werden nach jedem Stapel zurückgesetzt.
  • Der Zweck der Verwendung von zustandsbehafteten LSTMs besteht darin, den Kontext über die Zeitschritte hinweg beizubehalten eine einzelne Sequenz, obwohl die Stapelgröße 1 beträgt.

Bildkorrespondenzen

  • Erstes Diagramm (abgerollt, Stapelgröße != 1 ): Jede Zeile stellt den Inhalt des internen Zustands des LSTM (orangefarbene Kästchen) und die Ausgabe (grünes Kästchen) bei jedem Zeitschritt innerhalb von a dar Batch.
  • Zweites Diagramm (Batchgröße = 1): Ähnlich dem ersten Diagramm, aber jede Zeile repräsentiert den Inhalt des Status und der Ausgabe für die gesamte Sequenz in einem einzelnen Batch (Batch Größe von 1).

Zusätzlich Hinweise

  • Multivariate Serien: Um multivariate Serien zu verarbeiten, bei denen jeder Zeitschritt mehrere Features enthält, sollte die Anzahl der Features in der Umform- und LSTM-Ebene gleich sein Gesamtzahl der Features in den Daten.
  • Time Distributed Layer: Der TimeDistributed Layer kann dazu verwendet werden Wenden Sie die gleiche Transformation auf jeden Zeitschritt in einer Sequenz an, wodurch effektiv eine Viele-zu-Viele-Ebene entsteht.

Das obige ist der detaillierte Inhalt vonWie funktionieren Stateful LSTMs mit einer Batchgröße von 1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage