比如我们得到了一段曲线(红色这一部分)后边是一段时间后需要预测的。
首先,生成数据的代码
start=np.random.randint(3,size=1)[0] # start随机设置为0-3,也就是起点,来让训练数据不一样
time_steps=np.linspace(start,start+10,num_time_steps) # 设置取波形的长度为10
data=np.sin(time_steps) # 生成波形
data=data.reshape(num_time_steps,1)
x=torch.tensor(data[:-1]).float().view(1,num_time_steps-1,1) # 给你0-48的点
y=torch.tensor(data[1:]).float().view(1,num_time_steps-1,1) # 预测1-49的点
网络结构
class Net(nn.Module):
def __init__(self):
super(Net,self).__init__()
self.rnn=nn.RNN(
input_size=input_size, # 1
hidden_size=hidden_size, # 10
num_layers=1,
batch_first=True, # 如果使用【b,seq,