Mittel- oder Maximal-Pooling mit Maskierungsunterstützung in 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'))
....

Ich muss in der Lage sein, den Mittelwert oder das Maximum der Vektoren für alle Zeitschritte in einer Probe nach der LSTM-Schicht zu ermitteln, bevor ich diesen Mittelwert oder dieses Maximum der dichten Schicht in Keras gebe.

Meiner Ansicht nachtimedistributedmerge konnte dies tun, wurde aber verworfen. @ Verwendreturn_sequences=True Ich kann die Vektoren für alle Zeitschritte in einer Stichprobe nach der LSTM-Schicht erhalten. Jedoch,GlobalAveragePooling1D() ist nicht mit der Maskierung kompatibel und berücksichtigt alle Zeitschritte, während ich nur die nicht maskierten Zeitschritte benötige.

Ich habe Posts gesehen, in denen das @ empfohlen wurdLambda layer, aber diese berücksichtigen auch keine Maskierung. Jede Hilfe wäre dankbar.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage