如果您只想要一个 LSTM 模型,它接受形状为 (nb_seq, 1, 1000) 的输入(nb_seq 是您的序列数,在您的情况下为 10)并输出相同的形状,这里是一个您可以适应的基本模型:
input_x = Input(shape=(1, 1000))
x = LSTM(64, return_sequences=True)(input_x)
x = LSTM(64, return_sequences=True)(x)
x = Dense(1000)(x)
Model(inputs=input_x, outputs=x)
return_sequence=True 的 LSTM 层将返回一个形状为 (nb_seq, 1, 64) 的张量(64 是 LSTM 层的神经元数量),因此为了找到原始形状,您可以通过这个张量通过一个 Dense 层,它会给你一个 (nb_seq, 1, 1000) 的形状,或者你可以在最后一个 LSTM 层上直接有 1000 个神经元(我不推荐,因为它会生成很多参数)。
你可以随意修改。
精确后编辑
由于 keras LSTM 只接受 3D 输入,您可以通过在开始时传递一个 Timedistributed flatten 层来欺骗它:
input_x = Input(shape=(10, 1, 1000))
x = TimeDistributed(Flatten())(input_x)
x = LSTM(64, return_sequences=True)(x)
x = LSTM(64, return_sequences=True)(x)
x = Dense(1000)(x)
x = Reshape(target_shape=(10, 1, 1000))(x)
Model(inputs=input_x, outputs=x)
这给了你这个总结: