我有一个格式为 [train[:, :, 0:count]]
的模型输入,如下所示
n_step = 10
count = 8
def create_model():
input = Input(shape=(n_steps, count), name='input')
--------
--------
rest of the network
if __name__ == "__main__":
model = create_model()
history = model.fit([train[:, :, 0:count]],[y_train],epochs=50,batch_size=64,validation_data=[[val[:, :, 0:count]], y_validation])
validationPredict = model.predict([val[:, :, 0:count]], verbose=2)
第一维是样本,第二维是时间步长,第三维是特征(这里是 8 个)。 我有每个样本的时间戳和功能(在列表中)。但我不明白如何将它们存储在一个 numpy 数组中,以便我可以使用相同的格式(3d)来训练网络。
任何建议都会有很大帮助。谢谢!
答案 0 :(得分:0)
据我所知 - 您需要将长二维序列转换为短序列。
您必须创建长度为 10 的序列:
n_step = 10
inp = np.random.uniform(size=(100, 20)).tolist() # long 2D sequence
labels = np.random.uniform(size=(100, )).tolist() # long 1D labels
sequences = [inp[x:x+n_step] for x in range(len(inp)-n_step)]
train = np.array(sequences) # 3D input numpy array
sequences = [labels[x:x+n_step] for x in range(len(inp)-n_step)]
y_train = np.array(sequences) # 2D labels numpy array