Maison  >  Article  >  développement back-end  >  Comment les pas de temps et les fonctionnalités affectent-ils les performances du modèle LSTM et la formation avec état ?

Comment les pas de temps et les fonctionnalités affectent-ils les performances du modèle LSTM et la formation avec état ?

DDD
DDDoriginal
2024-11-25 18:13:27782parcourir

How Do Time Steps and Features Affect LSTM Model Performance and Stateful Training?

Comprendre les pas de temps et les fonctionnalités LSTM

Dans les modèles LSTM, les pas de temps et les fonctionnalités font référence aux dimensions des données d'entrée. Les pas de temps représentent le nombre de points de données dans une séquence, tandis que les caractéristiques représentent les différentes variables ou dimensions au sein de chaque point de données.

Dans votre exemple, les données d'entrée sont remodelées en un tableau 3D avec les dimensions suivantes :

  • Échantillons (taille du lot)
  • Pas de temps (durée des séquences, dans ce cas 3)
  • Caractéristiques (nombre de variables d'entrée, dans ce cas 1)

Par conséquent, chaque échantillon est une séquence de 3 points de données, chaque point de données étant constitué d'une seule entrée variable.

LSTM avec état

Les LSTM avec état maintiennent une état caché qui est mis à jour à chaque pas de temps. Cela permet au modèle d'apprendre des entrées passées et de faire des prédictions basées sur un contexte. Lorsque stateful=True, le LSTM se souviendra de l'état caché entre les lots, ce qui peut être utile pour les données séquentielles.

Dans votre code, vous utilisez une taille de lot de 1 et entraînez le modèle pendant 100 époques. Cependant, vous réinitialisez également les états après chaque époque avec model.reset_states(). Cela signifie que le modèle n'apprend pas réellement des entrées passées entre les lots, et il traite essentiellement chaque lot comme une nouvelle séquence.

Pour entraîner correctement un LSTM avec état, vous devez éviter de réinitialiser les états pendant l'entraînement. Au lieu de cela, vous ne devez réinitialiser les états que lorsque vous souhaitez démarrer une nouvelle séquence ou faire une prédiction sur un nouveau point de données.

Diagrammes déroulés

Les diagrammes que vous avez fournis illustrer l'architecture déroulée des réseaux LSTM. Dans les deux cas, les cases rouges représentent les étapes de saisie, et les cases vertes représentent l'état caché.

Edit 1 :

Le schéma suivant correspond au premier schéma déroulé vous avez fourni :

[Image du diagramme déroulé avec un pas d'entrée par pas de temps]

Le diagramme que vous avez fourni correspond au deuxième diagramme déroulé :

[Image d'un diagramme déroulé avec toutes les étapes de saisie en même temps]

Edit 2 :

Comprendre les pas de temps et les arguments des fonctionnalités est essentiel pour les modèles LSTM. Reportez-vous aux ressources fournies dans le message d'origine et les commentaires pour plus de précisions.

Remarques supplémentaires :

  • Les couches LSTM peuvent traiter les données sous diverses formes, dont une -à plusieurs configurations, plusieurs à un et plusieurs à plusieurs.
  • Vous pouvez réaliser différentes configurations en ajustant le argument return_sequences.
  • Le message d'origine contient également des informations précieuses sur l'utilisation des LSTM avec état pour les tâches de prédiction d'étapes futures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn