使用PyTorch和Lightning AI构建LSTM 第5部分:通过训练改进预测 - DEV Community

Dev.to ML 2026-06-27T21:20:35.210083

使用PyTorch和Lightning AI构建LSTM 第5部分:通过训练改进预测 - DEV Community

上一篇文章中,我们运行了模型并检查了其预测的准确度。

本文将进行模型训练。

首先,创建训练数据。

inputs = torch.tensor([
    [0., 0.5, 0.25, 1.],
    [1., 0.5, 0.25, 1.]
])

这些数据代表两家公司在第1天到第4天的股票价格。

接下来,创建标签,即我们希望LSTM(长短期记忆网络)预测的值。

labels = torch.tensor([0., 1.])

这里,我们希望LSTM预测:

现在,我们将输入和标签组合成一个名为 datasetTensorDataset

dataset = TensorDataset(inputs, labels)
dataloader = DataLoader(dataset)

正如我们在之前的文章中讨论的,DataLoader 非常有用,原因如下:

接下来,创建一个Lightning训练器。

trainer = L.Trainer(max_epochs=2000)

这里,我们告诉Lightning最多训练2000个epoch。

在训练过程中,反向传播(backpropagation)用于优化LSTM中所有可训练的权重和偏置。

要开始训练,只需调用训练器的 fit() 方法。

trainer.fit(model, train_dataloaders=dataloader)

训练完成后,我们可以像之前一样打印预测结果。

print("\nComparing observed and predicted values")

print(
    "Company A: Observed = 0, Predicted =",
    model(torch.tensor([0., 0.5, 0.25, 1.])).detach()
)

print(
    "Company B: Observed = 1, Predicted =",
    model(torch.tensor([1., 0.5, 0.25, 1.])).detach()
)

输出结果如下:

Comparing observed and predicted values

Company A: Observed = 0, Predicted = tensor(0.0003)
Company B: Observed = 1, Predicted = tensor(0.9287)

可以看到,训练后预测结果有了显著改进。模型现在产生的数值更接近期望输出。

在下一篇文章中,我们将探索TensorBoard来分析训练过程中发生了什么。

查看原文