我有一个LSTM模型(keras),它将过去6个变量的20个值作为输入,并预测其中3个变量未来4个值的情况。换句话说,我有6个时间序列,正在尝试使用它们的20个过去值来预测它们的未来值。基本代码如下:
所以,输入是一个形状为
现在,我有新的数据可用,因此对于每个时间序列,我都有一个分类变量(可以取6个值:
past_time_steps = 6
future_time_steps = 4
inputs = Input(shape=(20,past_time_steps))
m = LSTM(hid, return_sequences=True)(inputs)
m = Dropout(0.5)(m)
m = LSTM(hid)(m)
m = Dropout(0.5)(m)
outputA = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
outputB = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
outputC = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
m = Model(inputs=[inputs], outputs=[outputA, outputB, outputC])
m.compile(optimizer='adam', loss='mae')
m.fit(x,[y1,y2, y2])
所以,输入是一个形状为
(500,20,6)
的numpy矩阵,其中500
表示样本数量(例如训练时间序列)。现在,我有新的数据可用,因此对于每个时间序列,我都有一个分类变量(可以取6个值:
0,1,2,3,4,5
)。如何将此信息添加到模型中?我可以添加另一层来使用此变量吗?是否应该在时间序列的开头/结尾填充此变量,以便我可以得到一个形状为(500,21,6)
的输入矩阵?