在mask中嵌入mask_zero = True的平均值

时间:2018-06-25 15:28:43

标签: python tensorflow keras embedding keras-layer

是否有可能在尊重掩膜的同时对一组嵌入的结果求平均?即仅对未屏蔽的行取平均值。

l_input = Input(shape=(20,), dtype='int32')  # list of indices
l_embedding = Embedding(output_dim=128, input_dim=10000,input_length=20, mask_zero=True)(l_input)
l_embedding_avg = Lambda(lambda xin: K.mean(xin, axis=1))(l_embedding)  # mean of all the embeddings, resulting in one 128 length vector

输入是可变长度的,所以当输入较短时,我会将其填充到长度20。在平均嵌入时,我想忽略零的嵌入,因为它们是没有意义的。

明智地,mask_zero=True应该通过使嵌入层输出一个nx 128矩阵来做到这一点,其中n是非零输入的数量,但是我总是从该层获得20x128的输出,当传递给平均层会产生不良结果

由于平均层的输出始终为固定长度,因此后续层是否支持屏蔽都无关紧要

0 个答案:

没有答案