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

这里写目录标题1.做时间序列问题2.问题1.数据集自己做,为多个输入对应多个或一个输出2.损失函数注意:不能用交叉熵nn.CrossEntropyLoss()3.准确率1.做时间序列问题2.问题1.数据集自己做,为多个输入对应多个或一个输出2.损失函数注意:不能用交叉熵nn.CrossEntropyLoss()nn.CrossEntropyLoss()要求target目标值即真实值是标签,是torch.int64类型数据,即整数,不允许小数,如果输入小数会强行取整,应该用nn.MSELo

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

1.做时间序列问题

2.问题

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

2.损失函数

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

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

nn.MSELoss()

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

RuntimeError: expected scalar type Long but found Float

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

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

增加维度方法:

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.net/127416.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 文件句柄数查看命令_linux查看句柄数

    linux 文件句柄数查看命令_linux查看句柄数//查看系统支持最大文件句柄数cat/proc/sys/fs/file-max//三个值分别表示已分配文件句柄的数目、已分配未使用文件句柄的数目、文件句柄的最大数目cat/proc/sys/fs/file-nr//单个进程文件句柄限制ulimit-n//查看某个进程所占文件句柄//先通过ps获取进程idps|grep进程名//获取进程所占句柄ls-l/proc/进程id/fd…

    2022年10月17日
    0
  • 安卓之ViewPager详解_ViewPager怎么用_ViewPager仿微博特效

    首先,展示一下ViewPager是什么样子的,用过新浪微博客户端的应该对下面的画面很熟悉,(画面不是很美观,主要就是那么个意思,将就着看吧….)下面那个允许你来回滑动显示不同页面的区域就是一个ViewPager,在这里就不解释了.布局文件如下:activity_weibo.xml

    2022年3月9日
    32
  • java中两个list取交集_判断两个list是否有交集

    java中两个list取交集_判断两个list是否有交集List<int>a1=newList<int>{1,2,3,4,5};List<int>a2=newList<int>{3,4,5,6,7};vara3=a1.Intersect(a2);foreach(varitemina3){Console.WriteLine(it…

    2022年10月7日
    0
  • VC6的SDK:Microsoft Platform SDK February 2003下载地址「建议收藏」

    VC6的SDK:Microsoft Platform SDK February 2003下载地址「建议收藏」据说是最后一个支持VC6R的SDK,我在项目中出现如下错误:errorLNK2001:unresolvedexternalsymbol_CLSID_ConnectionManager明明包含了这些头文件,也链接了LIB。。。#include//启用、禁用网卡#pragmacomment(lib,”ole32.lib”)VC6使用WMI

    2022年6月4日
    128
  • 语音信号处理分类

    语音信号处理分类人与人之间的通信:语音压缩与编码压缩语音信号的传输带宽或者降低电话信道的传输码率解释:比特率=位深X采样率X信道个数,比特率越高,还原度越高,速度越慢。所以降低编码比特率,可以节省频率资源。第一类人与机器之间的通信:语音合成机器讲话,人接听文语转换(TTS)系统,主要关注可理解度,自然度,可懂度,逼真度(情感语音合成)第二类人与机器之间的通信:语音识别人讲话,机器接…

    2022年5月26日
    39
  • mybatis 缓存的使用, 看这篇就够了「建议收藏」

    mybatis 缓存的使用, 看这篇就够了「建议收藏」缓存的重要性是不言而喻的。使用缓存,我们可以避免频繁的与数据库进行交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。mybatis也提供了对缓存的支持,分为一级缓存和二级缓存。但是在默认的情况下,只开启一级缓存(一级缓存是对同一个SqlSession而言的)。以下的项目是在mybatis初步使用(IDEA的Maven项目,超详细)的基础上进行。…

    2022年5月22日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号