0基础 Pytorch快速入门 01

一个简单线性模型的例子

# 代码的目的是找到最佳的权重 w,使得线性模型 y = x * w 对给定数据集的预测误差最小
# 误差通过均方误差(Mean Squared Error, MSE)来衡量
# 并可视化了结果。这样可以直观地看到哪个 w 值导致模型拥有最小的 MSE,从而选择最佳的模型参数。
# 在实际的机器学习应用中,这种方法通常会被更高效的优化算法(如梯度下降)所取代。

# 导入库 
# numpy 库用于科学计算,matplotlib.pyplot 用于画图
import numpy as np
import matplotlib.pyplot as plt

# 数据集
# 定义了一个简单的数据集,x_data 是输入数据,y_data 是对应的输出数据
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
 
# 模型函数(前向传播函数)
# 定义了线性模型函数 forward,它接受输入 x 并返回 x 和权重 w 的乘积作为预测值
def forward(x):
    return x*w
 
# 损失函数(目标函数)
# 定义了损失函数 loss,它计算单个数据点的预测值 y_pred 与真实值 y 之间的平方差
def loss(x, y):
    y_pred = forward(x)
    return (y_pred - y)**2
 
 
# 穷举法
w_list = []
mse_list = []
# 在一系列的 w 值(从 0.0 到 4.0,步长为 0.1)中进行穷举,计算每个 w 下模型的总损失,并计算均方误差(MSE)。
for w in np.arange(0.0, 4.1, 0.1):
    print("w=", w)
    l_sum = 0
#    然后对每个 w 值:
#    用一个嵌套循环遍历每个数据点 (x_val, y_val)
#    计算每个点的预测值和损失值,并将损失值累加到 l_sum
#    输出每个数据点的详细损失信息
#    计算并输出当前 w 值下的 MSE(l_sum/3),这里除以 3 是因为数据集包含三个数据点
#    将 w 和计算得到的 MSE 添加到列表中,用于之后的绘图
    for x_val, y_val in zip(x_data, y_data):
        y_pred_val = forward(x_val)
        loss_val = loss(x_val, y_val)
        l_sum += loss_val
        print('\t', x_val, y_val, y_pred_val, loss_val)
    print('MSE=', l_sum/3)
    w_list.append(w)
    mse_list.append(l_sum/3)
#使用 matplotlib 绘制 w 值与对应的 MSE 的图表。这有助于可视化不同的 w 值如何影响模型的损失,并找到损失最小的 w 值 
plt.plot(w_list,mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
plt.show()    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值