【RNN从入门到实战】GRU入门到实战(1)

本文介绍了如何使用GRU(GatedRecurrentUnit)在PyTorch中构建一个RNN模型,用于基于上证收盘价的时间序列预测。通过定义TrainSet和DataLoader,训练模型并生成预测数据,展示了模型的训练过程和预测结果的应用。
摘要由CSDN通过智能技术生成

def init(self, input_size):

super(RNN, self).init()

self.rnn = nn.GRU(

input_size=input_size,

hidden_size=64,

num_layers=1,

batch_first=True,

)

self.out = nn.Sequential(

nn.Linear(64, 1),

)

self.hidden = None

def forward(self, x):

r_out, self.hidden = self.rnn(x) # None 表示 hidden state 会用全0的 state

out = self.out(r_out)

return out

class TrainSet(Dataset):

def init(self, data):

定义好 image 的路径

self.data, self.label = data[:, :-1].float(), data[:, -1].float()

def getitem(self, index):

return self.data[index], self.label[index]

def len(self):

return len(self.data)

训练与测试


n为模型中的n

LR是模型的学习率

EPOCH是多次循环

train_end这个在之前的数据集中有提到。(注意是负数)

n = 30

LR = 0.0001

EPOCH = 100

train_end = -500

loss选用mse

预测的数据选择“收盘价”

n = 10

LR = 0.0001

EPOCH = 100

train_end = -500

数据集建立

df, df_all, df_index = readData(‘收盘价’, n=n, train_end=train_end)

df_all = np.array(df_all.tolist())

plt.plot(df_index, df_all, label=‘real-data’)

df_numpy = np.array(df)

df_numpy_mean = np.mean(df_numpy)

df_numpy_std = np.std(df_numpy)

df_numpy = (df_numpy - df_numpy_mean) / df_numpy_std

df_tensor = torch.Tensor(df_numpy)

trainset = TrainSet(df_tensor)

trainloader = DataLoader(trainset, batch_size=16, shuffle=True)

rnn = RNN(n)

optimizer = torch.optim.Adam(rnn.parameters(), lr=LR) # optimize all cnn parameters

loss_func = nn.MSELoss()

for step in ra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值