You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch LSTM预测输出恒为定值问题排查求助

问题:LSTM预测结果始终为近恒定值的排查与解决

我希望使用7个特征、时间步长为4来预测一个变量,相关数据与代码如下:

数据准备

# Shape X_train: torch.Size([24433, 4, 7])
# Shape Y_train: torch.Size([24433, 4, 1])

# Shape X_test: torch.Size([6109, 4, 7])
# Shape Y_test: torch.Size([6109, 4, 1])

train_dataset = TensorDataset(X_train, Y_train)
test_dataset = TensorDataset(X_test, Y_test) 

train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=32, shuffle=False)

初始LSTM模型

class LSTMModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super().__init__()
        self.lstm = nn.LSTM(input_size, hidden_size)
        self.linear = nn.Linear(hidden_size, output_size)
        
    def forward(self, x):
        x, _ = self.lstm(x)
        x = self.linear(x)
        return x

model = LSTMModel(input_size=7, hidden_size=256, output_size=1)

loss_fn = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.1)

模型训练与测试流程

# 遍历训练集
for X, Y in train_loader:

    optimizer.zero_grad()
    
    Y_pred = model(X)

    loss = loss_fn(Y_pred, Y)
    
    loss.backward()
    
    optimizer.step()

model.eval()

# 遍历测试集
for X, Y in test_loader:

    Y_pred = model(X)
    
    loss = loss_fn(Y_pred, Y)

真实标签与预测结果示例

真实标签Y示例

tensor([[[59.],
         [59.],
         [59.],
         [59.]],

        [[70.],
         [70.],
         [70.],
         [70.]],

        [[100.],
         [0.],
         [0.],
         [0.]],

# 更多示例

预测结果Y_pred示例

tensor([[[15.8224],
         [15.8224],
         [15.8224],
         [15.8224]],

        [[16.1654],
         [16.1654],
         [16.1654],
         [16.1654]],

        [[16.2127],
         [16.2127],
         [16.2127],
         [16.2127]],

# 更多示例

已尝试的调整方法

  • 修改模型架构(不同批次大小、不同层数)
  • 添加Dropout与权重衰减参数
  • 调整训练轮次
  • 更换优化器(Adam、SGD)并调整学习率
  • 对输入数据进行对数变换

我是PyTorch与LSTM的新手,可能存在操作失误,但无论如何调整,预测结果始终为近恒定值。请问我哪里出错了?应该如何解决?


内容的提问来源于stack exchange,提问作者user17515752

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:35:18