当前位置: 首页 > news >正文

《Pytorch深度学习实践》ch3-反向传播

                                                           ------B站《刘二大人》

1.Introduction

  • 在神经网络中,可以看到权重非常多,计算 loss 对 w 的偏导非常困难,于是引入了反向传播方法;

2.Backward

  • 这里模型为  y = x * w,所以要计算的偏导数为 loss 对 w;

  • 这里模型为  y = x * w + b,所以要计算的偏导数为 loss 对 w 和 loss 对 b;
  • 模型有几个初始变量,就要求几个偏导;

3.Tensor

  • Pytorch 里常用的一种数据类型为 Tensor,包含两种值;
  • item():提取数值,不会保留 Tensor 结构,也不能用于更新权重。
  • data:直接修改 Tensor 数据(可以更新权重等),但不会影响梯度计算或反向传播。它允许修改 Tensor,而不会触发梯度计算。
  • 直接用原梯度才会触发梯度计算。

4.Implementation

import torch
import matplotlib.pyplot as plt# 数据集
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]# 权重(Tensor)
w = torch.Tensor([1.0])
w.requires_grad = True# 模型(自动变为 Tensor 间的运算)
def forward(x): return x * w# 损失函数
def loss(x, y):y_pred = forward(x)return (y_pred - y) ** 2# 训练轮数 epoch 为横坐标,损失 loss 为纵坐标
epoch_list = []
loss_list = []# 计算 loss - epoch
print('Predict (before training)', 4, forward(4).item())for epoch in range(100):for x, y in zip(x_data, y_data):loss_val = loss(x , y)loss_val.backward() # 反馈完计算图会被释放print('\tgrad:', x, y, w.grad.item())w.data -= 0.01 * w.grad.data # data 不会加入计算图w.grad.data.zero_() # 清除当前梯度,以防止累积epoch_list.append(epoch)loss_list.append(loss_val.item())print('progress:', epoch, loss_val.item())print('Predict (after training)', 4, forward(4).item())# 绘图
plt.plot(epoch_list, loss_list)
plt.xlabel('epoch')
plt.ylabel('loss')
plt.grid()
plt.show()
  • 绘图如下:

相关文章:

  • NX869NX874美光固态颗粒NX877NX883
  • AI助力软件开发 – 豆包+Trae CN开发体验
  • 盒子模型与页面布局基础
  • 【C语言预处理详解(上)】--预定义符号,#define定义常量,#define定义宏,带有副作用的宏参数,宏替换的规则,宏和函数的对比
  • 【2025年B卷】华为OD-100分-字符串重新排列、字符串重新排序
  • InlineHook的原理与做法
  • 无畏契约 directx runtime修复
  • 【技术支持】安卓开发中queryUsageStats不准确的问题
  • esp32关于PWM最清晰的解释
  • Ⅱ.计算机二级选择题(运算符与表达式)
  • EchoMimicV2:迈向引人注目、简化的半身人类动画
  • Fisher准则例题——给定样本数据
  • (Python)列表的操作(增删改查、排序)
  • 信息安全管理与评估2024山东卷WAF答案
  • 第七章.正则表达式
  • 车载软件更新 --- 数据完整性和正确性策略(数据验签事宜汇总)
  • 经典数学教材推荐(AI相关)
  • 《人性的弱点》能带给我们什么?
  • 构建高性能风控指标系统
  • 初识Linux指令(笔记2)
  • wordpress注册不要电子邮件/手机优化大师官方版
  • 大连免费建站模板/鼓楼网站seo搜索引擎优化
  • 一站式网络营销/站长工具传媒
  • 网站关键词优化seo关键词之间最好用逗号/2024年2月疫情又开始了吗
  • 国外h5制作网站/百度推广售后客服电话
  • 网站建设工作组/网站设计论文