Agrupación media o máxima con soporte de enmascaramiento en Keras

...
print('Build model...')
model = Sequential()
model.add(Embedding(max_features, 128))
model.add(LSTM(size, return_sequences=True, dropout_W=0.2 dropout_U=0.2)) 
model.add(GlobalAveragePooling1D())
model.add(Dense(1))
model.add(Activation('sigmoid'))
....

Necesito poder tomar la media o el máximo de los vectores para todos los pasos de tiempo en una muestra después de la capa LSTM antes de dar este vector medio o máximo a la capa densa en Keras.

Yo creo quetimedistributedmerge pude hacer esto pero fue desaprobado. Utilizandoreturn_sequences=True Puedo obtener los vectores para todos los pasos de tiempo en una muestra después de la capa LSTM. Sin embargo,GlobalAveragePooling1D() no es compatible con el enmascaramiento y considera todos los pasos de tiempo, mientras que solo necesito los pasos de tiempo sin máscara.

Vi publicaciones que recomendabanLambda capa, pero estos tampoco tienen en cuenta el enmascaramiento. Cualquier ayuda sería apreciada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta