在 Keras 中进行批量归一化的双向 LSTM
Bidirectional LSTM with Batch Normalization in Keras
我想知道如何在 Keras 中使用批量归一化 (BN) 实现 biLSTM。我知道BN层应该介于线性和非线性之间,即激活。这很容易用 CNN 或 Dense 层实现。但是,如何使用 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 应用于输出。
如果您想要将 BatchNormalization 应用于 LSTM 的内部流程之一,例如循环流程,恐怕 Keras 尚未实现该功能。
我想知道如何在 Keras 中使用批量归一化 (BN) 实现 biLSTM。我知道BN层应该介于线性和非线性之间,即激活。这很容易用 CNN 或 Dense 层实现。但是,如何使用 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 应用于输出。
如果您想要将 BatchNormalization 应用于 LSTM 的内部流程之一,例如循环流程,恐怕 Keras 尚未实现该功能。