我正在进行3维时间序列的预测,想知道是否有可能在Keras中配置一个模型来输出一个矩阵。
目前,我一个接一个地训练了3个回归模型,一个用于预测每个输出维度。例如,在预测水平为10个样本的情况下,每个模型输出一个10x1向量。然而,似乎使用单一模型可以更有效地实现这一点。
谢谢
发布于 2019-05-04 03:54:06
我发现了一种使用Keras核心层重塑的更好的方法。对于按预测变量大小调整大小的输出的预测范围,在具有该形状的密集图层之后添加重塑图层
from keras.layers import Dense, Reshape, Sequential, LSTM
model = Sequential()
model.add(LSTM(100, activation='relu', return_sequences=True, input_shape=(n_steps_in, n_features)))
model.add(LSTM(100, activation='relu'))
model.add(Dense(n_steps_out*n_features))
model.add(Reshape((n_steps_out,n_features)))
model.compile(optimizer='adam', loss='mse')发布于 2019-04-25 06:30:29
我想出了一个非常简单的解决办法。我只是在进入的过程中重塑目标,在退出的过程中重塑预测。
input_data = input_data.reshape((num_simulations,input_samples*3))
target_data = target_data.reshape((num_simulations,horizon*3))
model.fit(input_data, target_data, validation_split=0.2, epochs=epochs,
batch_size=batch_size, verbose=0, shuffle=True)
prediction = model.predict(input_data, batch_size=batch_size)
prediction = prediction.reshape((num_simulations,horizon,3))https://stackoverflow.com/questions/55819013
复制相似问题