LSTM的输出维度如何与下一层的输入维度不同?

我在查看以下代码:

model = Sequential()model.add(LSTM(input_shape = (1,), input_dim=1, output_dim=6, return_sequences=True))model.add(LSTM(input_shape = (1,), input_dim=1, output_dim=6, return_sequences=False))model.add(Dense(1))model.add(Activation('linear'))

第一层的输出维度是6,为什么下一层的输入维度是1?

编辑

代码是错误的,Keras尽力处理了,如实际生成的模型所示(注意模型与代码不符):enter image description here


回答:

这段代码非常混乱,不应该这样写。

在顺序模型中,Keras只尊重第一层的input_shape。所有后续层都使用前一层的输出进行初始化,实际上忽略了input_shape的指定。源代码:keras/models.py。在这种情况下,它是(None, None, 6)

因此,模型摘要如下所示:

Layer (type)                 Output Shape              Param #   =================================================================lstm_1 (LSTM)                (None, None, 6)           192       _________________________________________________________________lstm_2 (LSTM)                (None, 6)                 312       =================================================================

顺便说一下,Keras对这个LSTM的指定发出了警告,因为input_dim已被弃用:

请将您的LSTM调用更新为Keras 2 API:LSTM(input_shape=(None, 1), return_sequences=True, units=6)

请将您的LSTM调用更新为Keras 2 API:LSTM(input_shape=(None, 1), return_sequences=False, units=6)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注