1

在 Keras 中,当使用LSTMor时GRU,如果我设置return_sequences=False了 ,我会得到最后的输出;如果我设置return_sequences=True,我会得到完整的序列;但是如何同时获得它们呢?

4

1 回答 1

1

实际上,最后一次返回的时间步长return_sequences=True相当于 LSTM 层的输出 when return_sequences=False

lstm_out_rs = LSTM(..., return_sequences=True)(x)
lstm_out_rs[:,-1]  # this is the last timestep of returned sequence 

lstm_out = LSTM(..., return_sequences=False)(x)

lstm_out_rs[:,-1]并且lstm_out彼此等价。因此,要同时拥有它们,您可以使用一个Lambda图层:

lstm_out_rs = LSTM(..., return_sequences=True)(x)
out = Lambda(lambda t: [t, t[:,-1]])(lstm_out_rs)

# out[0] is all the outputs, out[1] is the last output
于 2018-12-12T01:01:03.667 回答