【发布时间】:2017-11-24 23:55:51
【问题描述】:
我想知道如何在 Keras 中使用批标准化 (BN) 实现 biLSTM。我知道BN层应该介于线性和非线性之间,即激活。这很容易通过 CNN 或 Dense 层实现。但是,如何使用 biLSTM 做到这一点?
提前致谢。
【问题讨论】:
标签: python keras lstm recurrent-neural-network keras-layer
我想知道如何在 Keras 中使用批标准化 (BN) 实现 biLSTM。我知道BN层应该介于线性和非线性之间,即激活。这很容易通过 CNN 或 Dense 层实现。但是,如何使用 biLSTM 做到这一点?
提前致谢。
【问题讨论】:
标签: python keras lstm recurrent-neural-network keras-layer
如果你想对 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 中实现。
【讨论】: