pytorch跑LSTM,网络参数不优化更新是怎么回事?

Max720csdn Max720csdn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

请教一下大神们,我用pytorch跑LSTM,为什么不管跑多少轮网络参数都基本不变,Loss也不会变化呢?用的一个最基础的网络(本来是一个LSTM自编码器,后来找问题一直拆到只剩一个LSTM让输入和输出逼近,还是有问题)。

有没有大神懂的麻烦帮忙看看,万分感谢!

 

import torch
from torch import nn


class Network(nn.Module):
    def __init__(self):
        super().__init__()
        self.rnn = nn.RNN(
            input_size=5,
            hidden_size=5,
            num_layers=1,
            batch_first=True
        )

    def forward(self, x):
        y, h = self.rnn(x)
        return y


model = Network()
Loss_fn = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)

a = torch.zeros(3, 2, 5)
a[0, :, :] = torch.tensor([[[25.5, 28.7, 14.3, 63.5, 27.0], [15.5, 37.6, 43.3, 22.6, 54.4]]])
a[1, :, :] = a[0, :, :] + 15
a[2, :, :] = a[0, :, :] + 30

for epoch in range(10):
    for n in range(3):
        data_in = a[n:n+1, :, :]
        data_pred = model(data_in)
        loss = Loss_fn(data_pred, data_in)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
Max720csdn
Python 10,243 成员 705 内容