Keras中具有批量归一化的双向LSTM

abo*_*azl 9 python lstm keras recurrent-neural-network keras-layer

我想知道如何在Keras中实现具有批量标准化(BN)的biLSTM.我知道BN层应该在线性和非线性之间,即激活.使用CNN或Dense图层很容易实现.但是,如何用biLSTM做到这一点?

提前致谢.

alb*_*rji 6

如果要在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())
Run Code Online (Sandbox Code Playgroud)

基本上,您正在删除LSTM的非线性激活(但不是门激活),然后将BatchNormalization应用于outpus.

如果你想要的是将BatchNormalization应用到LSTM的一个内部流程中,例如循环流,我担心该功能尚未在Keras中实现.