在不使用嵌入的情况下掩盖keras中LSTM中的零输入

时间:2018-11-06 13:25:14

标签: keras lstm embedding

我正在Keras训练LSTM:

iclf = Sequential()
iclf.add(Bidirectional(LSTM(units=10, return_sequences=True, recurrent_dropout=0.3), input_shape=(None,2048)))
iclf.add(TimeDistributed(Dense(1, activation='sigmoid')))

每个单元格的输入是一个2048矢量,它是已知的并且不需要学习(如果您愿意,它们是输入句子中单词的ELMo嵌入)。因此,这里没有嵌入层。

由于输入序列的长度可变,因此使用pad_sequences进行填充:

X = pad_sequences(sequences=X, padding='post', truncating='post', value=0.0, dtype='float32')

现在,我想告诉LSTM忽略这些填充元素。官方方法是将嵌入层与mask_zero=True一起使用。但是,这里没有嵌入层。如何通知LSTM屏蔽零元素?

1 个答案:

答案 0 :(得分:0)

正如@Today在评论中建议的那样,您可以使用ion-fab层。在这里,我添加了一个玩具问题。

Masking