Je suis nouveau à Keras, et j'ai du mal à comprendre la forme des données d'entrée de la couche LSTM. La documentation de Keras indique que les données d'entrée doivent être en 3D avec une forme (nb_samples, timesteps, input_dim). J'ai de la difficulté à comprendre ce format. La variable timesteps représente-t-elle le nombre de timesteps mémorisés par le réseau?Comment régler l'entrée pour LSTM dans Keras
Dans mes données, quelques pas de temps affectent la sortie du réseau mais je ne sais pas combien d'avance, c'est-à-dire que je ne peux pas dire que les 10 échantillons précédents affectent la sortie. Par exemple, l'entrée peut être des mots qui forment des phrases. Il y a une corrélation importante entre les mots de chaque phrase. Je ne connais pas la longueur de la phrase à l'avance, cette longueur varie également d'une phrase à l'autre. Je sais quand la phrase se termine (c'est-à-dire que j'ai une période qui indique la fin). Deux phrases différentes n'ont aucun effet l'une sur l'autre - il n'est pas nécessaire de se souvenir de la phrase précédente. J'utilise le réseau LSTM pour apprendre une politique d'apprentissage par renforcement, donc je n'ai pas de jeu de données fixe. La politique de l'agent va changer la durée de la phrase.
Comment dois-je façonner mes données? Comment devrait-il être introduit dans la couche Keras LSTM?
Selon vous êtes prêt à dépenser combien de ressources, vous devez choisir une longueur maximale de la peine, puis tronquer/remplir avec 0 tous les exemples à cette longueur. Keras exige qu'il soit réparé. –
Donc, la forme d'entrée devrait-elle être dans ce cas? input_shape = (longueur_sure_ maximale,)? –
Vous devez diviser votre texte en phrases, puis la quantité de phrases que vous avez est votre 'nb_samples'. Le 'timesteps' est le nombre maximum de mots/caractères. Ensuite, 'input_dim' est la taille de la représentation de ces mots/caractères (par exemple, si vous utilisez des plongées de mots, la taille d'incorporation) –