线性回归简洁实现

1.通过使用深度学习框架来简洁实现线性回归模型生成数据集

复制代码
import numpy as np
import torch
from torch.utils import data
from d2l import torch as d2l

true_w = torch.tensor([2, -3.4])
true_b = 4.2
features, labels = d2l.synthetic_data(true_w, true_b, 1000)

2.调用框架现有API来读取数据

复制代码
def load_array(data_arrays, batch_size, is_train=True):
    """构造Pytorch数据迭代器"""
    dataset = data.TensorDataset(*data_arrays)
    return data.DataLoader(dataset, batch_size, shuffle=is_train)

batch_size=10
data_iter=load_array((features, labels),batch_size)

next(iter(data_iter))

3.使用框架预定义好的层

复制代码
from torch import nn

net = nn.Sequential(nn.Linear(2, 1))

4.初始化模型参数

复制代码
net[0].weight.data.normal_(0, 0.01)
net[0].bias.data.fill_(0)

5.计算均方误差使用的是MSELoss类(平方范式)

复制代码
loss = nn.MSELoss()

6.实例化SGD实例

复制代码
trainer = torch.optim.SGD(net.parameters(), lr=0.03)

7.训练过程代码

复制代码
num_epochs = 3
for epoch in range(num_epochs):
    for X, y in data_iter:
        l = loss(net(X), y)
        trainer.zero_grad()
        l.backward()
        trainer.step()
    l = loss(net(features), labels)
    print(f'epoch{epoch + 1},loss {1:f}')
相关推荐
每天要多喝水1 分钟前
动态规划Day34:回文
算法·动态规划
weixin_477271694 分钟前
马王堆帛书《周易》系统性解读(《函谷门》原创)
算法·图搜索算法
AomanHao30 分钟前
【ISP】基于暗通道先验改进的红外图像透雾
图像处理·人工智能·算法·计算机视觉·图像增强·红外图像
We་ct44 分钟前
LeetCode 226. 翻转二叉树:两种解法(递归+迭代)详解
前端·算法·leetcode·链表·typescript
大熊背1 小时前
APEX系统中为什么 不用与EV0的差值计算曝光参数调整量
人工智能·算法·apex·自动曝光
REDcker1 小时前
HDR Vivid 技术介绍
数据库·算法·视频·sdr·屏幕·显示技术·dhr
ab1515171 小时前
2.18完成109、112、113
算法
追随者永远是胜利者1 小时前
(LeetCode-Hot100)64. 最小路径和
java·算法·leetcode·职场和发展·go
汉克老师1 小时前
GESP2024年6月认证C++二级( 第三部分编程题(1) 平方之和)
c++·算法·预处理·完全平方数·循环结构·gesp二级·gesp2级
云深处@2 小时前
【题】每日一题
算法