lstm的输入与输出
下面我们就来说说输入问题,在Keras中,LSTM的输入shape=(samples, time_steps, input_dim)
,其中samples
表示样本数量,time_steps
表示时间步长,input_dim
表示每一个时间步上的维度。我举一个例子吧,现在有一个数据集有四个属性(A,B, C, D)
,我们希望的预测标签式D
,假设这里的样本数量为N
。如果时间步长为1,那么此时的输入shape=(N, 1, 4)
,具体的数据是这样的[A(t-1), B(t-1), C(t-1), D(t-1)]
(此处表示一个数据样本),样本标签为[D(t)]
;如果时间步长为2,那么此时的输入shape=(N, 2, 4)
,具体的数据是[[A(t-2), B(t-2), C(t-2), D(t-2)], [A(t-1), B(t-1), C(t-1), D(t-1)]]
(此处仍表示一个样本数据)。
关于Keras中LSTM的输出问题,在搭建网络时有两个参数,一个是output_dim
表示输出的维度,这个参数其实就是确定了四个小黄矩形中权重矩阵的大小。另一个可选参数return_sequence
,这个参数表示LSTM返回的时一个时间序列还是最后一个,也就是说当return_sequence=True
时返回的是(samples, time_steps