在 Keras 中,当使用LSTM
or时GRU
,如果我设置return_sequences=False
了 ,我会得到最后的输出;如果我设置return_sequences=True
,我会得到完整的序列;但是如何同时获得它们呢?
问问题
811 次
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 回答