Heim > Backend-Entwicklung > Python-Tutorial > Wie wirken sich Zeitschritte und Funktionen auf die Leistung von Keras LSTM aus?

Wie wirken sich Zeitschritte und Funktionen auf die Leistung von Keras LSTM aus?

Susan Sarandon
Freigeben: 2024-11-27 06:55:39
Original
285 Leute haben es durchsucht

How Do Time Steps and Features Affect Keras LSTM Performance?

Zeitschritte und Features in Keras-LSTMs verstehen

Um Ihre Fragen zu beantworten, schauen wir uns die Konzepte von Zeitschritten und Features in Relation genauer an zu LSTMs, die in Keras implementiert sind.

Zeitschritte und Funktionen

Im bereitgestellten Keras-Beispiel werden die trainX-Daten in die folgende Form umgeformt:

(trainX.shape[0], look_back, 1)
Nach dem Login kopieren
  • Zeitschritte: Der Look_back-Wert stellt die Anzahl der Zeitschritte in jeder Sequenz dar. Hier ist es auf 3 gesetzt, was bedeutet, dass jede Zeile in trainX die drei vorherigen Datenpunkte enthält.
  • Features: Die Anzahl der Features in einer Sequenz entspricht der letzten Dimension des Datentensors. In diesem Fall ist es 1, was darauf hinweist, dass die Sequenzen nur ein Merkmal enthalten (z. B. einen Aktienkurs).

In Bezug auf das Bild, das Sie aus Karpathys Blog verlinkt haben, stellt jedes „rosa“ Rechteck ein Merkmal dar und Die „grünen“ Rechtecke geben Zeitschritte an. Somit würde das Diagramm im Bild einer Zeitreihe mit drei Zeitschritten und zwei Merkmalen entsprechen.

Stateful LSTMs

Stateful LSTMs behalten einen internen Zustand bei, der dies zulässt sich daran zu erinnern, was sie während der Verarbeitung einer bestimmten Sequenz gelernt haben. Wenn Sie sie mit Keras verwenden, setzen Sie den Stateful-Parameter auf True.

In Ihrem Beispiel setzen Sie „batch_size“ auf 1 und verwenden model.fit() für das Training mit shuffle=False. Das bedeutet, dass jeder Stapel eine einzelne Sequenz enthält und der LSTM die Sequenzen in derselben Reihenfolge verarbeitet, in der sie in den Trainingsdaten erscheinen. Dadurch bleibt der Zustand des LSTM stapelübergreifend erhalten, sodass er aus der gesamten Sequenz lernen kann.

Indem Sie den Zustand des LSTM zwischen den Trainingsepochen zurücksetzen, „beginnen“ Sie den Lernprozess für jede Epoche effektiv von vorne . Das LSTM merkt sich jedoch immer noch die Gesamtmuster, die es über die Epochen hinweg gelernt hat.

Wichtige Hinweise

  • Wenn Sie mehrere unabhängige Sequenzen haben (z. B. Modellierung zweier Aktien). Preise gleichzeitig), jede Sequenz sollte ihre eigene LSTM-Schicht haben.
  • Die Anzahl der Zeitschritte muss basierend auf dem spezifischen Problem bestimmt werden und Daten, mit denen Sie arbeiten.
  • Stateful LSTMs können nützlich sein, wenn Sie Abhängigkeiten über lange Sequenzen lernen möchten, sie sollten jedoch mit Vorsicht verwendet werden, da sie zu einer Überanpassung führen können.

Das obige ist der detaillierte Inhalt vonWie wirken sich Zeitschritte und Funktionen auf die Leistung von Keras LSTM aus?. 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