LSTM数据准备

时间:2018-07-19 12:05:29

标签: python keras

我正在为LSTM网络(使用Python和Keras)准备一个时间序列,它看起来像这样:

Samples=[]
for i in range(0,len(TrainingData)-Time_Step,1):
    Samples.append(TrainingData[i:i+Time_Step])]

由于它是一个for循环,它真的很慢,是否有更快的方法?

1 个答案:

答案 0 :(得分:0)

您要做的事情应该是简单的重塑:

#if training data is not numpy, make it numpy
TrainingData = np.array(TrainingData)

originalShape = TrainindData.shape

if len(originalShape == 1):
    Samples = TrainingData.reshape((Time_Step,)) #or (Time_Step,1)
else:
    Samples = TrainingData.reshape((Time_Step,) + originalShape[1:])

警告:LSTM的数据应具有(batch_size_or_samples, time_steps_or_length, features)之类的形状。序列不应在窗口中分割(除非出于非常特殊的原因而必须严格执行此操作-然后还必须执行一些特殊操作),并且时间维度应为第二个,而不是第一个。