gpt4 book ai didi

python - 具有多个输入序列和相应的多个输出序列的 LSTM

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:37 24 4
gpt4 key购买 nike

我有一个与 reshape LSTM 输入/输出数据相关的问题。虽然有很多帖子考虑这些问题,但我找不到合适的解决方案。如果错误非常明显,我很抱歉 - 我对深度学习领域相当陌生。

我的问题如下:我进行了一次模拟,产生了几个与时间相关的数据序列,我希望将其输入到 LSTM 网络中。数据(非常简化)如下所示:

X=[[[8, 0, 18, 10]
[9, 0, 20, 7]
[7, 0, 17, 12]]
[[7, 0, 31, 8]
[5, 0, 22, 9]
[7, 0, 17, 12]]]

也就是说,我有两个序列,每个序列有 3 个时间步长,每个时间步长有 4 个特征。因此,X的形状是(2,3,4)。相应地,我想要预测的内容如下

y=[[[10]
[7]
[12]]
[[8]
[9]
[12]]]

并且具有形状(2,3,1)。也就是说,数据点 [8,0,18,10] 应该预测 [10],然后点 [9,0,20,7] 应该预测 7,依此类推。我的模型如下所示:

model.add(LSTM(input_shape=(X.shape[1], X.shape[2]), return_sequences=True))
model.add(Dense(50, activation='tanh'))
model.add(Dense(1, activation='tanh'))

虽然这看起来没有错误,但我的结果却很糟糕。我认为这很可能与正确 reshape 输出向量有关。另外,我不太确定 return_sequences 是否必须为真。如果将其设置为 False,我会收到错误消息“预期 dend_2 具有 2 维,但得到形状为 (2,3,1) 的数组。”对此不太确定。我也在研究 Seq2Seq 建模,因为我试图根据序列预测序列,但我找不到解决方法。有人可以帮忙吗?

最佳答案

您可能试图从 'tanh' 中获取大数字,它仅输出 -1 到 1 之间的值。

例如,使用 tanh 无法达到 10。

要么将最终激活替换为'线性'(输出任何内容),要么将输出数据标准化为 -1 和 1 之间。

如果您的数据始终为正,您可以尝试使用 'softplus' 而不是 '线性',如果您选择标准化数据,请将其设置在 0 和1 并使用'sigmoid'

关于python - 具有多个输入序列和相应的多个输出序列的 LSTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com