4

Je me demandais comment implémenter biLSTM avec la normalisation par lots (BN) dans Keras. Je sais que la couche BN devrait être entre la linéarité et la non-linéarité, c'est-à-dire, l'activation. C'est facile à implémenter avec des couches CNN ou Dense. Mais, comment le faire avec biLSTM?LSTM bidirectionnel avec normalisation par lots dans Keras

Merci d'avance.

Répondre

1

Si vous souhaitez appliquer BatchNormalization sur les sorties linéaires d'un LSTM vous pouvez le faire comme

from keras.models import Sequential 
from keras.layers.recurrent import LSTM 
from keras.layers.wrappers import Bidirectional 
from keras.layers.normalization import BatchNormalization 

model = Sequential() 
model.add(Bidirectional(LSTM(128, activation=None), input_shape=(256,10))) 
model.add(BatchNormalization()) 

Essentiellement, vous supprimez les activations non-linéaires de la LSTM (mais pas les activations de porte), puis en appliquant BatchNormalization à l'outpus. Si vous voulez appliquer BatchNormalization dans l'un des flux internes de LSTM, comme les flux récurrents, je crains que cette fonctionnalité n'ait pas été implémentée dans Keras.