飞飞会灰 2021-09-05 07:42 采纳率: 0%
浏览 19
已结题

Pytorch从零开始实现线性回归(结果异常,权重和bias不收敛),大家看下什么问题

#定义测试数据
x = torch.randn((1000,1))*100
y = x*50+1230
y_ = y + torch.normal(10000,3000,size= (1000,1)) #加入噪音

#定义损失函数:
def MSE_loss(y_,y):
    MSE = torch.sum(torch.square(y-y_))/y.size()[0]
    loss = MSE
    return loss

#定义网络及迭代方式
def Linear_Net(x,y,lr,epochs):
    #导入必备库:
    import torch
    import torch.nn as nn
    #提取size:
    input_size = x.size()[0]
    input_features = x.size()[1]
    #初始化参数:
    w = torch.rand((input_features,1),requires_grad=True)
    b = torch.rand((1,1),requires_grad=True)
    loss_ = []
    
    #计算及迭代:
    for i in range(epochs):
        y_ = torch.mm(x,w)+b
        loss = MSE_loss(y_,y)
                
        loss.backward()
        for param in [w,b]:
            param.data -= -lr* param.grad
       
        #梯度清零,否则梯度累加
        w.grad.data.zero_()
        b.grad.data.zero_()
              
        loss_.append(loss.item())
       #查看每次w,b运行情况
        print(w)
        print(b)
    #导出结果:
    print("w============>>>>>>",w)
    print("b============>>>>>>",b)
    

结果不知道为什么,好差,不收敛:

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月13日
    • 创建了问题 9月5日

    悬赏问题

    • ¥200 csgo2的viewmatrix值是否还有别的获取方式
    • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
    • ¥15 请把下列每一行代码完整地读懂并注释出来
    • ¥15 pycharm运行main文件,显示没有conda环境
    • ¥15 易优eyoucms关于二级栏目调用的问题
    • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
    • ¥15 为什么eclipse不能再下载了?
    • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
    • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
    • ¥15 特定网页无法访问,已排除网页问题