2016-06-28 49 views
5

Ho un LSTM in Keras che mi sto allenando per prevedere sui dati delle serie temporali. Voglio che la rete generi previsioni su ogni timestep, poiché riceverà un nuovo input ogni 15 secondi. Quindi, quello a cui sto lavorando è il modo corretto di addestrarlo in modo che emetta h_0, h_1, ..., h_t, come flusso costante mentre riceve x_0, x_1, ...., x_t come flusso di input . C'è una buona pratica per fare questo?Uscita flusso di pronostici in Keras

enter image description here

risposta

4

È possibile attivare statefulness nei vostri strati LSTM impostando stateful=True. Ciò modifica il comportamento del livello per utilizzare sempre lo stato della precedente chiamata del livello invece di reimpostarlo per ogni layer.call(x).

Ad esempio uno strato LSTM con 32 unità con dimensione del lotto 1, lunghezza della sequenza 64 e caratteristica lunghezza 10:

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

Con questo successive chiamate di predict utilizzerà lo stato precedente.

+1

E così .reset_states() sarebbe la funzione per iniziare una nuova sequenza di input? Molto bello, grazie! – Rob

+0

Sì. Ho dimenticato di dirlo, mi dispiace. – nemo

+0

@nemo Ho una domanda successiva [qui] (http://stackoverflow.com/questions/38313673/lstm-with-keras-for-mini-batch-training-and-online-testing). Ti dispiacerebbe dare un'occhiata? – BoltzmannBrain

Problemi correlati