【李哥考研复试项目】——第3节linear模型代码

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

Linear模型代码及步骤

0. matplotlib画图bug:
import matplotlib
matplotlib.use(‘TkAgg’) # 告诉matplotlib,请使用tkagg后端. 这是独立弹出的gui,而非使用的Pycharm界面的sciview。不加上这句会有bug
import matplotlib.pyplot as plt # 画图的
的撒

1. 生成训练的X,Y数据
a.设定一个真实的模型:true_w, true_b - 均为tensor类型
b.设定生成数据的数量:num
c.重点要明确生成的X,Y的维数:
w -> 1维tensor,长度为4
b -> 1维tensor,长度为1
X - > 2维tensor,(num, 4)
Y -> x*w + b : (num, 1)
为什么Y的维度为1?可以联系前向过程的神经网络计算图,4个不同维度的X,通过全连接生成一个神经元Y

2. 观察一下生成的X,Y的散点图
plt.scatter(X[:, 3], Y, 1) # 对比不同的权重生成的数据分布情况。X只能取某一列,因为画图时仅有一个自变量更清晰。可以将这个列换成其他列后观察不同维度生成的X,Y数据分布
plt.show()

3. 构建分批次取数据的函数
1.函数的作用:
a.如500个数据中每隔16个为一组进行一次梯度下降参数优化过程
b.取数据需要随机取,不能顺序取

2.为什么分批次取数据:
a.减小内存的使用和提高计算的效率
b.一般来讲分批次优化比单次和全批次处理的效果好

的撒

4. 构建计算预测的y的函数
pred_y = torch.matmul(x, w) + b
注意:torch.matmul()是矩阵运算,参数必须全部是tensor

5. 定义一个损失函数
常见的如:
MAE = |y^-y|
MSE = 1/2|y^-y|**2

6. 构建梯度下降优化参数列表中参数的函数
给出一个参数列表,对参数列表中参数依次使用梯度下降算法进行优化。

7. 设置学习率
先默认一个学习率,后期通过调试分析后可以上、下调

8. 定义训练的轮数,开始训练
每轮都从数据集中分批次取数据,每次取数据都优化一次参数。每轮的具体过程如下:
a.计算预测y
b.计算loss
c.梯度下降算法优化参数
注意:可以每轮都打印(轮数,该轮的总loss)便于调试与分析

9. 最后画图验证训练效果
如何绘图?
使用数据集的X,与训练得到的模型绘制连线图(plot)
使用数据集的X,Y绘制散点图(scatter)
如何验证?
成功的图一般有一些特征,比如:
1.直线穿过数据集的中间位置
2.数据均匀的分布在直线两侧
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen
文本生成
Qwen3

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值