KerasでBatchNormalization(BN)を使用してbiLSTMを実装する方法を考えていました。 BN層は線形性と非線形性、つまり活性化の間にあるべきだと私は知っています。これは、CNNまたは高密度レイヤーで簡単に実装できます。しかし、biLSTMでこれを行う方法は?
前もって感謝します。
LSTMの線形出力にBatchNormalizationを適用する場合は、次のように実行できます。
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())
基本的に、LSTMの非線形アクティベーション(ゲートアクティベーションではない)を削除してから、BatchNormalizationをアウトパスに適用します。
繰り返しフローなど、LSTMの内部フローの1つにBatchNormalizationを適用したい場合は、この機能がKerasに実装されていないのではないかと思います。