首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Keras :使用过去几天的向量创建事件发生的每日向量

Keras :使用过去几天的向量创建事件发生的每日向量
EN

Stack Overflow用户
提问于 2022-05-03 06:37:33
回答 1查看 73关注 0票数 1

我刚刚开始用Tensorflow / Keras在Python中实现LSTM,以测试我的想法,但是我很难正确地创建一个模型。

对于每一天,我想预测哪一组事件将发生。其思想是,有些事件是反复发生的/总是在一段时间过去之后发生的,而另一些事件则很少发生或没有任何结构。LSTM应该能够捕捉到这些反复发生的事件,以便预测未来几天的发生情况。

为了显示事件,我使用一个值为0和1(无发生和发生)的列表。例如,如果我有活动“去学校”,“去健身房”,“买一台电脑”,我有一个清单,比如1,0,1,1,0,1,0,1,1,1,0等等。这个想法是,LSTM会意识到我每天都去上学,每隔一天去健身房,买一台电脑是非常罕见的。因此,按照向量的顺序,第二天它应该可以预测1,0,0。

我不知道在LSTM /代码中实现这一点的最佳方法是什么,但到目前为止,我已经完成了以下工作:

  1. 创建x_train,它是一个具有形状的numpy数组(363,193)。它包含363个具有相同193个事件的列表。
  2. 创建y_train,它也是一个具有形状的数组( 363 , 193 )。这些名单比x_train早了一天。因此,例如,x_train[1] == y_train[0]计算为所有True.

我不希望我的模型作为输入第一天和预测第二天。我想给它训练数据,如第1天,第2天,第3天,...,365,然后让它创建一个0-1矢量为第366,367,.独自一人。我在网上发现了很多文章,但它们似乎都专注于预测单个值,而不是一个完整的向量。

我尝试过的一个实现如下:

代码语言:javascript
运行
AI代码解释
复制
model.add(layers.LSTM(100,input_shape=(363, 193), return_sequences=True))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(1, activation='linear'))
model.compile(loss='mse',optimizer='rmsprop')
model.fit(x_train,y_train)

ValueError: Input 0 of layer "sequential_27" is incompatible with the layer: expected shape=(None, 363, 193), found shape=(None, 193)

为了得到至少一个工作模型,我尽可能多地使用输入形状,但对我来说,这似乎是正确的,因为我的input_shape和x_train.shape是一样的。我还将return_sequences设置为True,因为我相信我想利用许多到许多关系。

如果有人能在如何正确创建LSTM方面给我一些帮助,我将非常感激。

EN

回答 1

Stack Overflow用户

发布于 2022-05-03 07:32:12

需要多个样本来训练网络,现在只有一个窗口大小为363。将x_train重塑为(1,363,193)将修复输入形状问题,但根本问题仍然相同,只有一个训练样本。我建议给https://www.tensorflow.org/api_docs/python/tf/data/Dataset#window一个尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72101086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档