我正在为LSTM网络(使用Python和Keras)准备一个时间序列,它看起来像这样:
Samples=[]
for i in range(0,len(TrainingData)-Time_Step,1):
Samples.append(TrainingData[i:i+Time_Step])]
由于它是一个for循环,它真的很慢,是否有更快的方法?
答案 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)
之类的形状。序列不应在窗口中分割(除非出于非常特殊的原因而必须严格执行此操作-然后还必须执行一些特殊操作),并且时间维度应为第二个,而不是第一个。