Python keras-嵌入层掩码_零导致后续层出现异常

Python keras-嵌入层掩码_零导致后续层出现异常,python,machine-learning,keras,keras-layer,word-embedding,Python,Machine Learning,Keras,Keras Layer,Word Embedding,我正在制作一个基于纸张的模型,由于globalxpooling1d层不支持掩蔽,我遇到了一个异常 我有一个嵌入层,参数设置为True。但是,由于后续的globalxpooling1d层不支持掩蔽,我得到了一个异常。预计会出现例外情况,因为实际上已经说明,在嵌入层之后,具有mask\u zero=True的任何后续层都应该支持掩蔽 然而,当我在处理单词数量可变的句子时,我确实需要嵌入层中的掩蔽。(即,由于输入的长度不同)我的问题是,我应该如何改变我的模型,使掩蔽仍然是模型的一部分,并且不会在glo

我正在制作一个基于纸张的模型,由于
globalxpooling1d
层不支持掩蔽,我遇到了一个异常

我有一个
嵌入
层,参数设置为
True
。但是,由于后续的
globalxpooling1d
层不支持掩蔽,我得到了一个异常。预计会出现例外情况,因为实际上已经说明,在
嵌入
层之后,具有
mask\u zero=True的任何后续层都应该支持掩蔽

然而,当我在处理单词数量可变的句子时,我确实需要
嵌入层中的掩蔽。(即,由于输入的长度不同)我的问题是,我应该如何改变我的模型,使掩蔽仍然是模型的一部分,并且不会在
globalxpooling1d
层造成问题

下面是模型的代码

model = Sequential()
embedding_layer = Embedding(dictionary_size, num_word_dimensions,
                            weights=[embedding_weights], mask_zero=True,
                            embeddings_regularizer=regularizers.l2(0.0001))
model.add(TimeDistributed(embedding_layer,
                          input_shape=(max_conversation_length, timesteps)))

model.add(TimeDistributed(Bidirectional(LSTM(m // 2, return_sequences=True,
                                             kernel_regularizer=regularizers.l2(0.0001)))))
model.add(TimeDistributed(Dropout(0.2)))
model.add(TimeDistributed(GlobalMaxPooling1D()))
model.add(Bidirectional(LSTM(h // 2, return_sequences = True,
                             kernel_regularizer=regularizers.l2(0.0001)),
                        merge_mode='concat'))
model.add(Dropout(0.2))
crf = CRF(num_tags, sparse_target=False, kernel_regularizer=regularizers.l2(0.0001))
model.add(crf)
model.compile(optimizer, loss = crf.loss_function, metrics=[crf.accuracy])
然而,当我在处理单词数量可变的句子时,我确实需要嵌入层中的掩蔽

你是在填空句子,使其长度相等吗?如果是这样,那么您可以让模型自己发现0是填充的,因此应该忽略它,而不是屏蔽。因此,您不需要显式屏蔽。此方法也用于处理本节中建议的数据中的缺失值