首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多维输出目标的LSTM

具有多维输出目标的LSTM
EN

Stack Overflow用户
提问于 2018-06-25 01:28:53
回答 1查看 889关注 0票数 3

给定一个三维向量的时间序列,其中x,y和z是任意整数,我想要建立一个模型,预测这个序列中的下一个向量,并捕捉x,y,z每个维的模式。

因此,如果X = [[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3], [1, 2, 3]]和我给我的模型4元素序列[[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3]],它将预测[1, 2, 3]

我不能只对每个向量进行一次热编码,因为数字可以有任意的值,所以我想知道如何才能做到这一点。任何洞察力都是非常感谢的,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 02:07:53

在这种情况下,你的输入只是向量。在时间步骤1,向量是[0,0,6],在时间步骤2,向量是[1,0,0],依此类推。对于输出,您需要通过一个完全连接的层传递输出,该层将其转换为输出的正确大小。

假设您的序列长度是固定的,您实际上在这里没有任何预处理,除了可能标准化或重新标度您的输入,所以它们不是很大的数字。

一般来说,RNN的工作原理很像一个完全连接的网络。事实上,RNN单元是由4个完全连接的网络组成的,它们以一种非平凡的方式简单地连接在一起。但是从你投入的东西和你得到的东西的角度来看,把它们想象成一个简单的完全连接的网络(每一次步骤)。

你可以在我的最后一段读到更多:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

如果序列长度是可变的,则通常会添加一个输入,将其标记为预测步骤。这完全可以是零的,例如:

代码语言:javascript
复制
X = [[0, 0, 6], [1, 0, 0], [9, 9, 9], [3, 0, 3], [0, 0, 0]]

或者,如果[0,0,0]是一个有效的数据池,您可以添加一个特性,将时间步骤标记为输入或预测,例如:

代码语言:javascript
复制
X = [[0, 0, 0, 6], [0, 1, 0, 0], [0, 9, 9, 9], [0, 3, 0, 3], [1, 0, 0, 0]]

其中,该数据集中的第一个值指示时间步骤是输入0还是预测1

您将在每个时间步骤都有输出,而您将忽略这些输出。您的损失函数将只基于最后一个时间步骤的输出。

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

https://stackoverflow.com/questions/51015259

复制
相关文章

相似问题

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