Dans Keras, les données des séries chronologiques sont généralement remodelées en un tableau tridimensionnel avec le dimensions [échantillons, pas de temps, caractéristiques]. Ce format est nécessaire pour les couches LSTM, qui traitent les données de manière séquentielle au fil du temps.
Par exemple, si vous avez 5 séquences d'entraînement avec chacune 10 pas de temps et 1 fonctionnalité, vos données seraient remodelées en (5, 10, 1).
Les LSTM avec état permettent au modèle de conserver son état interne entre les lots. Cela signifie que le modèle mémorise les états cachés après le traitement d'un lot et les utilise comme entrée pour le lot suivant. Ceci est particulièrement utile lorsqu'il s'agit de données séquentielles, où la sortie actuelle dépend des entrées précédentes.
Dans le code Keras que vous avez fourni, stateful=True est défini sur True, indiquant que le LSTM est avec état. batch_size est défini sur 1, ce qui signifie que le modèle traitera une séquence à la fois. Le modèle conservera les valeurs de mémoire cellulaire entre les exécutions d'entraînement, ce qui lui permettra d'apprendre les dépendances à long terme dans les données.
Si vous travaillez avec des séries chronologiques multivariées, où chaque pas de temps a plusieurs caractéristiques d'entrée (par exemple, les cours des actions ), le nombre de fonctionnalités sera supérieur à 1.
L'implémentation Keras LSTM que vous avez fournie a un seul Couche LSTM avec 4 unités et une séquence de retour de True. Cela signifie que le LSTM produira une séquence de longueur 4 pour chaque pas de temps d'entrée.
Le modèle est ensuite compilé avec la fonction de perte d'erreur quadratique moyenne et l'optimiseur Adam. La boucle d'entraînement itère pendant 100 époques, avec une taille de lot de 1.
Il est important de noter que ce modèle LSTM est conçu pour prédire le prochain pas de temps en fonction des pas de temps précédents. Cependant, le modèle peut être modifié pour d'autres tâches telles que la classification de séquences ou la modélisation de langage en modifiant la couche de sortie et la fonction de perte.
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!