我正在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屏蔽零元素?
答案 0 :(得分:0)
正如@Today在评论中建议的那样,您可以使用ion-fab
层。在这里,我添加了一个玩具问题。
Masking