是否有可能在尊重掩膜的同时对一组嵌入的结果求平均?即仅对未屏蔽的行取平均值。
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的输出,当传递给平均层会产生不良结果
由于平均层的输出始终为固定长度,因此后续层是否支持屏蔽都无关紧要