线性回归训练流程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、线性回归的完整训练流程

二、步骤

1.数据生成 

2.数据加载器

功能

3.线性模型 (fun) 和 损失函数 (maeloss)

功能

4.随机梯度下降 (sgd)

功能

5.模型训练

训练过程

6.参数对比

7.可视化结果

功能

总结


 

一、线性回归的完整训练流程

包括数据生成、批量数据加载、模型定义、损失计算、梯度更新,以及最后的训练结果可视化。以下是详细的解释:

二、步骤

1.数据生成 

代码如下(示例):

def create_data(w,b,data_num):
    x=torch.normal(0,1,(data_num,len(w))) # 随机生成特征 x,服从标准正态分布
    y=torch.matmul(x,w)+b  # 按线性关系生成目标值 y

    noise=torch.normal(0,0.01,y.shape) # 添加噪声,模拟真实数据的不确定性
    y+=noise # 将噪声加到目标值上

    return x,y
num=500
true_w=torch.tensor([8.1,2,2,4]) #权重
true_b=torch.tensor(1.1) #偏置值
  • 生成特征x 是一个服从正态分布的二维张量,行数为样本数量,列数为特征数量(由 w 的长度决定)。
  • 生成目标值:通过公式 y=xw+by = xw + by=xw+b 计算真实值。
  • 添加噪声:为目标值加入小幅随机噪声,增加数据的随机性。

2.数据加载器

代码如下(示例):

def data_provider(data,label,batchsize):
    length=len(label)
    indices=list(range(length)) # 生成样本索引
    random.shuffle(indices) # 打乱索引,保证数据顺序随机

    for each in range(0,length,batchsize): # 按批量大小划分数据
        get_indices=indices[each:each+batchsize]
        get_data=data[get_indices]
        get_label=label[get_indices] 

        yield get_data,get_label # 使用生成器逐批返回数据
功能
  • 数据分批:将完整的数据集分成小批量(batchsize),用于梯度下降训练。
  • 随机性:每次迭代随机打乱数据,减少过拟合风险。
  • 生成器:用 yield 按需返回小批量数据,节省内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值