2016-06-28 2 views
5

J'ai un LSTM dans Keras que je m'entraîne pour prédire les données de séries chronologiques. Je veux que le réseau fournisse des prédictions sur chaque pas de temps, car il recevra une nouvelle entrée toutes les 15 secondes. Donc, ce que je suis aux prises avec est la bonne façon de l'entraîner afin qu'il produise h_0, h_1, ..., h_t, comme un flux constant comme il reçoit x_0, x_1, ...., x_t comme un flux d'entrées . Existe-t-il une meilleure pratique pour ce faire?Sortie de flux de prédictions dans Keras

enter image description here

Répondre

4

Vous pouvez activer statefulness dans vos couches de LSMC en définissant stateful=True. Cela modifie le comportement de la couche pour toujours utiliser l'état de l'appel précédent de la couche au lieu de la réinitialiser pour chaque layer.call(x).

Par exemple, une couche de LSTM avec 32 unités avec la taille du lot 1, la longueur de la séquence 64 et la longueur du dispositif 10:

LSTM(32, stateful=True, batch_input_shape=(1,64,10)) 

Avec ces appels successifs de predict utilisera les états précédents.

+1

Et donc .reset_states() serait la fonction pour démarrer une nouvelle séquence d'entrées? Très cool, merci! – Rob

+0

Oui. J'ai oublié de le mentionner, désolé. – nemo

+0

@nemo J'ai une question de suivi [ici] (http://stackoverflow.com/questions/38313673/lstm-with-keras-for-mini-batch-training-and-online-testing). Pourriez-vous jeter un oeil? – BoltzmannBrain