是否可以从 RNN 获得可变的输出长度,即 input_seq_length != output_seq_length?
这是一个显示 LSTM 输出形状的示例,test_rnn_output_v1默认设置 - 仅返回最后一步的test_rnn_output_v2输出,返回所有步骤的输出,即我需要类似test_rnn_output_v2但具有输出形状(None, variable_seq_length, rnn_dim)或至少(None, max_output_seq_length, rnn_dim).
from keras.layers import Input
from keras.layers import LSTM
from keras.models import Model
def test_rnn_output_v1():
max_seq_length = 10
n_features = 4
rnn_dim = 64
input = Input(shape=(max_seq_length, n_features))
out = LSTM(rnn_dim)(input)
model = Model(inputs=[input], outputs=out)
print(model.summary())
# (None, max_seq_length, n_features)
# (None, rnn_dim)
def test_rnn_output_v2():
max_seq_length = 10
n_features = 4
rnn_dim = 64
input = Input(shape=(max_seq_length, n_features))
out = LSTM(rnn_dim, return_sequences=True)(input)
model = Model(inputs=[input], outputs=out)
print(model.summary())
# (None, max_seq_length, n_features)
# (None, max_seq_length, rnn_dim)
test_rnn_output_v1()
test_rnn_output_v2()