序列数据的训练预测实现

目录

1.导包

2.创建序列 

3.创建序列数据的dataloader 

4.创建模型、定义损失 

5.定义训练、调用训练函数 

6.序列数据的预测 

7.序列数据的多步预测 

8.序列数据的k步预测 


序列数据:2018年公布的计算机科学技术名词

#序列数据有先后顺序,例如:温度随时间变化而变化
#NLP也是序列数据,自然语言文字有前右后 

#总结:使用序列数据做自回归预测时,需要使用最近几步的历史数据来预测的效果较好,反之,预测误差会累积导致效果越来越差 

1.导包

# d2l 
# 安装d2l
# pip install d2l -i https://pypi.tuna.tsinghua.edu.cn/simple 

# d2l.plot??     #两个问号可以看到 调用方法的 源码 

import torch 
from torch import nn
import matplotlib.pyplot as plt

from d2l import torch as d2l   #导入深度学习torch框架下的工具包d2l   #里面有一个d2l.plot()画图方法

2.创建序列 

#创建数据
#创建1000个点
T = 1000
time = torch.arange(1, T+1, dtype=torch.float32) #快速生成一系列连续的数字(整数/浮点数)
#创建正弦数据,加上噪声
#torch.normal(0, 0.2, (T, )表示均值=0,std标准差,  (T,)表示形状大小, 创建正态分布数据
x = torch.sin(0.01 * time) + torch.normal(0, 0.2, (T, ))

# plt.plot(time, x)
# plt.xlim(1, 1000)
# plt.xlabel('time')
# plt.ylabel('y')
# plt.grid()  #显示网格线

#使用d2l工具包
#d2l.plot(time, [y])中同一个x值下可以同时画多个y值(用列表传入y)
# xlim=[1, T]用列表传入参数
d2l.plot(time, [x], xlabel='time', ylabel='y', xlim=[1, T],figsize=(6, 3))

#用序列数据中的历史数据 来训练预测未来数据  属于自回归  (预测的未来数据还是原数据中本身的数据) 

#无关代码,只是想看一下数据的形状
torch.zeros(2,3)
tensor([[0., 0., 0.],
        [0., 0., 0.]])

3.创建序列数据的dataloader 

# X, y 自回归, X, y都是同一组序列数据, 只不过X是历史数据, y是将来数据.
tau = 4   #时间间隔变量   #间隔4

#生成一个全是0的数据,后期再填入数据
features = torch.zeros((T - tau, tau))  #(T - tau, tau)表示数据形状:共T - tau行,tau列
# features.shape
# 对features每一列进行赋值
for i in range(tau):                #遍历每一列,进行特征值赋值 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值