百度飞浆:paddle 线性回归模型

学习引用 参考视频:

https://www.bilibili.com/video/BV1oRtkeVEVx?spm_id_from=333.788.player.switch\&vd_source=c7739de98d044e74cdc74d6e772bed5f\&p=2

这段代码使用PaddlePaddle深度学习框架来实现一个简单的线性回归模型,旨在从给定的出租车行驶公里数和对应的支付费用中学习出租车的起步价和每公里行驶费用。下面我将逐行解释这段代码的功能:

  1. 导入数据

    python 复制代码
    x_data = paddle.to_tensor([[1.0], [3.0], [5.0], [9.0], [20.0]])
    y_data = paddle.to_tensor([[12.0],[16.0],[20.0],[28.0],[50.0]])

    这里,x_data表示行驶公里数,y_data表示对应的支付费用。它们都被转换为PaddlePaddle的张量(Tensor)格式,以便后续的计算。

  2. 定义线性模型

    python 复制代码
    linear = paddle.nn.Linear(in_features=1, out_features=1)

    定义一个线性模型(也称为全连接层或密集层),输入特征数为1(即公里数),输出特征数为1(即预测的费用)。

  3. 查看初始权重和偏置

    python 复制代码
    w_before_opt = linear.weight.numpy().item()
    b_before_opt = linear.bias.numpy().item()
    print(w_before_opt, b_before_opt)

    打印出模型初始化的权重和偏置值。这些值是随机初始化的。

  4. 定义损失函数和优化器

    python 复制代码
    mse_loss = paddle.nn.MSELoss()
    sgd_optimizer = paddle.optimizer.SGD(learning_rate=0.001, parameters=linear.parameters())

    使用均方误差(MSE)作为损失函数,因为这是一个回归问题。选择随机梯度下降(SGD)作为优化器,并设置学习率为0.001。

  5. 训练循环

    python 复制代码
    total_epoch = 5000
    for i in range(total_epoch):
        y_predict = linear(x_data)
        loss = mse_loss(y_predict, y_data)
        loss.backward()
        sgd_optimizer.step()
        sgd_optimizer.clear_gradients()

    进行5000次迭代(或称为epoch)。在每次迭代中,首先计算预测值y_predict,然后计算损失值loss,接着通过loss.backward()计算梯度,sgd_optimizer.step()更新模型参数,最后通过sgd_optimizer.clear_gradients()清除梯度,为下一次迭代做准备。

  6. 每1000次迭代打印一次损失

    python 复制代码
    if i % 1000 == 0:
        print(i, loss.numpy())

    为了监控训练过程,每1000次迭代打印一次当前的损失值。

  7. 训练结束后的操作和打印

    python 复制代码
    print("finish training, loss = {}".format(loss.numpy()))
    w_after_opt = linear.weight.numpy().item()
    b_after_opt = linear.bias.numpy().item()
    print(w_after_opt, b_after_opt)

    打印出训练结束后的最终损失值,以及优化后的权重和偏置值。这些值代表了学习到的起步价(偏置)和每公里费用(权重)。

总结

这段代码通过线性回归模型,从给定的出租车行驶公里数和支付费用数据中学习出租车的起步价和每公里行驶费用。通过多次迭代,模型逐渐调整其权重和偏置,以最小化预测费用与实际费用之间的均方误差。最终,模型学习到的权重和偏置值可以被解释为出租车的每公里费用和起步价。

复制代码
```python
import paddle
# 任务乘坐出租车起步价10元,每公里2元
def calculate_fee(distance_travelled):
    return 10 + 2 * distance_travelled

for x in [1.0, 3.0, 5.0, 9.0, 20.0]:
    print(calculate_fee(x))

#知道乘客每次乘坐出租车公里数,也知道乘客每次下车支付费用
#求 起步价、以及每公里形式费用。目标让机器从这些数据当中学习出来计算费用的规则
x_data = paddle.to_tensor([[1.0], [3.0], [5.0], [9.0], [20.0]])
y_data = paddle.to_tensor([[12.0],[16.0],[20.0],[28.0],[50.0]])

linear = paddle.nn.Linear(in_features=1, out_features=1)
w_before_opt = linear.weight.numpy().item()
b_before_opt = linear.bias.numpy().item()
print(w_before_opt, b_before_opt)

mse_loss = paddle.nn.MSELoss()
sgd_optimizer = paddle.optimizer.SGD(learning_rate=0.001, parameters=linear.parameters())

total_epoch = 5000
for i in range(total_epoch):
    y_predict = linear(x_data)
    loss = mse_loss(y_predict, y_data)
    loss.backward()
    sgd_optimizer.step()
    sgd_optimizer.clear_gradients()

    if i % 1000 == 0:
        print(i, loss.numpy())

print("finish training, loss = {}".format(loss.numpy()))

w_after_opt = linear.weight.numpy().item()
b_after_opt = linear.bias.numpy().item()
print(w_after_opt, b_after_opt)
复制代码
相关推荐
LaughingZhu5 小时前
Product Hunt 每日热榜 | 2026-08-01
人工智能·深度学习·神经网络·搜索引擎·百度
hyf3266331 天前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
MindUp2 天前
AI辅助PPT生成工具实测:百度文库等平台在技术学习场景下的内容生成与排版能力对比
人工智能·百度·powerpoint
m0_726365834 天前
# Chrome纸牌游戏预测工具开发实战:Canvas图表识别、OCR与实时状态监控
chrome·python·游戏·贪心算法·ocr·线性回归·哈希算法
molihuan4 天前
最新 Paddle-Lite Android平台编译
android·ocr·paddle·推理·端侧·paddle lite
xialage1685 天前
服装辅料厂家生成式引擎GEO优化之时机、价值与落地路径
大数据·百度
Ztt6666666665 天前
【无标题】
经验分享·笔记·其他·百度·微信公众平台
满怀冰雪6 天前
08-Paddle 神经网络层入门:Linear、激活函数与 Sequential
神经网络·机器学习·paddle
huashengzsj6 天前
会期3天!2026人工智能前沿学术会议议程速览
人工智能·百度
蓝创工坊Blue Foundry7 天前
PaddleOCR 本地部署教程:小模型 OCR 如何完成字段提取到 Excel
pdf·自动化·ocr·excel·paddlepaddle·paddle