【发布时间】:2018-09-02 16:13:28
【问题描述】:
我对在 Keras 中将 dropout 应用于我的 Sequential 模型的不同方法感到有些困惑。
我的模型如下:
model = Sequential()
model.add(Embedding(input_dim=64,output_dim=64, input_length=498))
model.add(LSTM(units=100,dropout=0.5, recurrent_dropout=0.5))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
假设我以如下方式在 Embedding 层之后添加了一个额外的 Dropout 层:
model = Sequential()
model.add(Embedding(input_dim=64,output_dim=64, input_length=498))
model.add(Dropout(0.25))
model.add(LSTM(units=100,dropout=0.5, recurrent_dropout=0.5))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
这会有什么不同,因为我在 LSTM 参数中特别指定了 dropout 应该是 0.5,还是我完全错了?
【问题讨论】:
标签: python tensorflow machine-learning keras lstm