【发布时间】:2018-09-04 23:30:51
【问题描述】:
我有一个 LSTM 模型 (keras),它接收 6 变量的过去 20 值作为输入,并预测这些变量的 3 的未来 4 值。换句话说,我有 6 个时间序列,我试图使用它们的 20 个过去值来预测它们的未来值。基本代码是:
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) 的输入矩阵吗?
【问题讨论】:
标签: python deep-learning keras lstm categorical-data