import torch
from torch import nn
import numpy as np
import matplotlib.pyplot as plt
# Hyper Parameters
TIME_STEP =10
INPUT_SIZE =1
LR =0.02
h_state =None
定义RNN
classRNN(nn.Module):def__init__(self):super(RNN,self).__init__()
self.rnn = nn.RNN(
input_size=INPUT_SIZE,
hidden_size=32,# 隐藏的神经元
num_layers=1,# number of rnn layer
batch_first=True,# input & output will has batch size as 1s dimension# 是否batch 在第一维度上)
self.out = nn.Linear(32,1)defforward(self,x,h_state):# x (batch,time_step,input_size)# h_state (n_layers,batch,hidden_size)# r_out (batch,time_step,hidden_size)
r_out, h_state = self.rnn(x,h_state)
outs =[]for time_step inrange(r_out.size(1)):
outs.append(self.out(r_out[:,time_step,:]))return torch.stack(outs,dim=1),h_state
# 将数据竖着合成 [[1]] ,[[2]] ,[[3]]# [[1],# [2],# [3],]]