我有一个5000 by 9
2d numpy特征数组trainX
,它们是时间序列的特征。我还有一个1d numpy浮点特征标签数组trainY
。这正是scikit-learn
所需的格式。
我想将这些与keras + LSTM一起使用。这是我目前的代码:
NUM_EPOCHS = 20
model = Sequential()
model.add(LSTM(8, input_shape=(1, window_size)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=NUM_EPOCHS, batch_size=1, verbose=2)
然而,这不起作用,因为keras需要trainX
以不同的格式出现。我已经阅读了手册,但我无法理解这是什么。
如何将数据转换为keras可接受的格式?
答案 0 :(得分:3)
格式为(samples, timeSteps, features)
你有多少个序列?听起来像一个5000步的序列,是吗?
然后格式为(1,5000,9)
。
如果每个时间步都有一个标签,则标签也应为(1,5000,1)
。 (然后使用return_sequences=True
)。否则标签为(1,1)
。
或者,您可能希望在经典滑动窗口的情况下将您的单个序列拆分为多个段,例如,您有许多样本的时间步长较少,例如(4998,3,1)
,假设您需要一个3步的窗口。然后标签应遵循:(4998,1)
。