PyTorch会LSTM自动缩放数据

2023-03-22
前端之家小编收集整理的PyTorch会LSTM自动缩放数据内容,希望整理的这个开发编程问题PyTorch会LSTM自动缩放数据能够快速解决!

代码问题

我有一个LSTM产生奇怪的结果,预测值似乎与输入数据的标量不同,而预测结果在(0.5-0.5)范围内,而输入数据已用MinmaxScaler在范围(0,1)

我从数据中删除了MinmaxScaler,发现LSTM仍在给出预测值(-0.5-0.5),即使实际值没有按比例缩小

Input sequence: [176153.8125,170.0,1511.0,77.59058380126953,915.5689086914062]
Label: 10671.240234375
Predicted output: 0.30351510643959045

LSTM代码:

class LSTM(nn.Module):
def __init__(self,input_size=360,hidden_layer_size=50,output_size=batchSize):
    super().__init__()
    self.hidden_layer_size = hidden_layer_size

    self.lstm = nn.LSTM(input_size,hidden_layer_size)

    self.linear = nn.Linear(hidden_layer_size,output_size)

    self.hidden_cell = (torch.zeros(1,1,self.hidden_layer_size),torch.zeros(1,self.hidden_layer_size))

def init_hidden(self):
    return (torch.zeros(1,self.hidden_layer_size))

def forward(self,input_seq):

    lstm_out,self.hidden_cell = self.lstm(input_seq.view(len(input_seq),-1),self.hidden_cell)

    predictions = self.linear(lstm_out.view(len(input_seq),-1))


    return predictions[-1]

培训代码:

for i in range(epochs):

for seq,labels in train_loader:
    seq = seq.to(device)
    labels = labels.to(device)
    optimizer.zero_grad()
    model.module.hidden_cell = model.module.init_hidden()

    y_pred = model(seq)


    single_loss = loss_function(y_pred,labels)
    single_loss.backward()
    optimizer.step()

我错过了什么吗?还是我的模特只是胡扯

问题答案

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:starryrocklee#gmail.com (将#修改为@)

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


是否可以将 Python 程序转换为 C/C++? 我需要实现几个算法,我不确定性能差距是否足以证明我在 C/C++ 中执行它时所经历的所有痛苦(我不擅长)).我想写一个简单的算法,并根……
我想使用 NTT 进行快速平方(请参阅快速 bignum 平方计算),但即使对于非常大的数字……超过 12000 位.
C++ 标准在 3.3.2声明点\"中包含一个半著名的令人惊讶\"名称查找示例: int x = x; 这用自身初始化 x,它(作为原始类型)未初始化,因此具有不确定的值(假设它是一个自动变……
以下代码: myQueue.enqueue(\'a\'); myQueue.enqueue(\'b\'); cout << myQueue.dequeue() << myQueue.dequeue();
据我所知,写时复制不是在 C++11 中实现符合标准的 std::string 的可行方法,但是当它最近在讨论中出现时,我发现我自己无法直接支持这种说法.