前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytorch lstm时间序列预测问题踩坑「建议收藏」

pytorch lstm时间序列预测问题踩坑「建议收藏」

作者头像
全栈程序员站长
发布2022-07-31 17:43:14
7890
发布2022-07-31 17:43:14
举报

大家好,又见面了,我是你们的朋友全栈君。

这里写目录标题

1.做时间序列问题

2.问题

1.数据集自己做,为多个输入对应多个或一个输出

2.损失函数

注意:不能用交叉熵 nn.CrossEntropyLoss()

nn.CrossEntropyLoss()要求target目标值即真实值是标签,是torch.int64类型数据,即整数,不允许小数,如果输入小数会强行取整, 应该用

代码语言:javascript
复制
nn.MSELoss()

我在这个问题上纠结了很久,总是显示

代码语言:javascript
复制
RuntimeError: expected scalar type Long but found Float

导致我找了很久怎么样才能把torch.float64保留小数的情况下转成long,后来查资料torch.long就是torch.int64,简直变态 后来一点一点往上找才知道的这个错误

注意2:真实值(目标值)必须是两个维度,否则会警告,不会报错

增加维度方法:
代码语言:javascript
复制
1.torch.unsqueeze(tensor, dim)
2.numpy_array = .numpy_array [np.newaxis, :, :]  # 原来维度(10, 13)——(1, 10, 13)
补充
np.unaqueeze总是报错,不明白为什么

3.准确率

分类问题是有准确率这个评价的,但是我训练的rnn,loss一直降低,但是准确率为0,才反应过来,回归问题很难达到完全一致

3.结果

这是测试集预测结果,前10步预测后1步,勉强可以

请添加图片描述
请添加图片描述

训练集结果:

请添加图片描述
请添加图片描述

之后需要 0.5. 根据上一步预测结果预测下一个——做不到,x为13个变量,y只有1个,无法用y作为下一个x

  1. 找一个预测结果评价指标
  2. transformer编码解码

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127416.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里写目录标题
  • 1.做时间序列问题
  • 2.问题
    • 1.数据集自己做,为多个输入对应多个或一个输出
      • 2.损失函数
        • 注意:不能用交叉熵 nn.CrossEntropyLoss()
        • 注意2:真实值(目标值)必须是两个维度,否则会警告,不会报错
      • 3.准确率
      • 3.结果
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com