【发布时间】:2017-01-23 11:05:34
【问题描述】:
...
print('Build model...')
model = Sequential()
model.add(Embedding(max_features, 128))
model.add(LSTM(size, return_sequences=True, dropout_W=0.2 dropout_U=0.2))
model.add(GlobalAveragePooling1D())
model.add(Dense(1))
model.add(Activation('sigmoid'))
....
我需要能够在 LSTM 层之后的样本中获取所有时间步长的向量的平均值或最大值,然后再将此平均值或最大值向量提供给 Keras 中的密集层。
我认为timedistributedmerge 能够做到这一点,但它已被弃用。使用return_sequences=True,我可以获得 LSTM 层之后样本中所有时间步长的向量。但是,GlobalAveragePooling1D() 与屏蔽不兼容,它考虑了所有时间步,而我只需要非屏蔽时间步。
我看到了推荐Lambda 层的帖子,但这些帖子也没有考虑掩蔽。任何帮助将不胜感激。
【问题讨论】:
标签: python masking keras lstm pooling