小编tre*_*een的帖子

这个扁平化层在我的 LSTM 中起什么作用?

我正在使用 Keras 创建一个 LSTM,用于通过 IMDB 数据库(的子集)进行情感分析。如果我在最终的密集层之前添加一个扁平层,我的训练、验证和测试准确性将显着提高:

def lstm_model_flatten():
    embedding_dim = 128
    model = Sequential()
    model.add(layers.Embedding(vocab_size, embedding_dim, input_length=maxlen))
    model.add(layers.LSTM(128, return_sequences = True,  dropout=0.2)) 
    # Flatten layer
    model.add(layers.Flatten())
    model.add(layers.Dense(1,activation='sigmoid'))
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()
    return model
Run Code Online (Sandbox Code Playgroud)

这很快就会过拟合,但验证准确率高达 76% 左右:

Model: "sequential_43"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_42 (Embedding)     (None, 500, 128)          4768256   
_________________________________________________________________
lstm_63 (LSTM)               (None, 500, 128)          131584    
_________________________________________________________________
flatten_10 (Flatten)         (None, 64000)             0         
_________________________________________________________________
dense_40 (Dense)             (None, 1)                 64001     
=================================================================
Total params: 4,963,841
Trainable params: 4,963,841
Non-trainable params: …
Run Code Online (Sandbox Code Playgroud)

python machine-learning flatten lstm keras

5
推荐指数
1
解决办法
5610
查看次数

标签 统计

flatten ×1

keras ×1

lstm ×1

machine-learning ×1

python ×1