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

article/2025/7/1 3:17:21

                                                           ------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()
  • 绘图如下:


http://www.hkcw.cn/article/HsewAkRtZv.shtml

相关文章

房产销售系统 Java+Vue.js+SpringBoot,包括房源信息、房屋户型、房源类型、预约看房、房屋评价、房屋收藏模块

房产销售系统 JavaVue.jsSpringBoot,包括房源信息、房屋户型、房源类型、预约看房、房屋评价、房屋收藏模块 百度云盘链接:https://pan.baidu.com/s/1Ku27fPWwc47z2aSO_dow6w 密码:da1g 房产销售系统 摘 要 随着科学技术的飞速发展&#xf…

从0开始学vue:vue3和vue2的关系

一、版本演进关系1. 继承关系2. 版本生命周期 二、核心差异对比三、关键演进方向1. Composition API2. 性能优化 四、迁移策略1. 兼容构建模式2. 关键破坏性变更 五、生态演进1. 官方库升级2. 构建工具链 六、选型建议1. 新项目2. 现有项目 七、未来展望 一、版本演进关系 1. …

python 如何写4或5的表达式

python写4或5的表达式的方法: python中和是用“and”语句,或是用“or”语句。那么4或5的表达式为“4 or 5” 具体示例如下: 执行结果:

电子电气架构 --- 如何应对未来区域式电子电气(E/E)架构的挑战?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

绿盟 IPS 设备分析操作手册

一、操作手册说明 本手册面向安全监控分析人员,聚焦绿盟 IPS 设备的基础功能操作与典型攻击场景分析,提供安全事件监控、告警详情查看、白名单配置等功能指引,以及 Shiro 反序列化漏洞的检测与应急方法,助力及时发现并处置安全威…

Arch安装megaton

安装devkitPro https://blog.csdn.net/qq_39942341/article/details/148387077?spm1001.2014.3001.5501 安装cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 确认一下bashrc sudo pacman -S git cmake ninjagit clone https:/…

【Qt开发】对话框

目录 1,对话框的介绍 2,Qt内置对话框 2-1,消息对话框QMessageBox 2-2,颜色对话框QColorDialog 2-3,文件对话框QFileDialog 2-4,字体对话框QFontDialog 2-5,输入对话框QInputDialog 1&…

7.4-Creating data loaders for an instruction dataset

Chapter 7-Fine-tuning to follow instructions 7.4-Creating data loaders for an instruction dataset 我们只需将InstructionDataset对象和custom_collate_fn函数接入 PyTorch 数据加载器 ​ 使用以下代码来初始化设备信息 device torch.device("cuda" if tor…

android 上位机调试软件-安卓串口 com ttl 调试——仙盟创梦IDE

在 Android 开发中,基于com.ttl库的串口调试 Web 编写意义非凡。它打破了硬件与软件之间的壁垒,让 Android 设备能够与外部串口设备通信。对于智能家居、工业控制等领域,这一功能使得手机或平板能成为控制终端,实现远程监控与操作…

【笔记】解决虚拟环境中找不到 chromedriver 的问题

✅解决虚拟环境中找不到 chromedriver 的问题 📌 问题描述: 在 Windows 中已将 D:\chromedriver\ 添加到系统环境变量 PATH,在系统终端中运行 chromedriver 没有问题。 但在项目虚拟环境(如 .venv)中运行项目时&…

Linux 基础指令入门指南:解锁命令行的实用密码

文章目录 引言:Linux 下基本指令常用选项ls 指令pwd 命令cd 指令touch 指令mkdir 指令rmdir 指令 && rm 指令man 指令cp 指令mv 指令cat 指令more 指令less 指令head 指令tail 指令date 指令cal 指令find 指令按文件名搜索按文件大小搜索按修改时间搜索按文…

基于STM32的循迹避障小车的Proteus仿真设计

文章目录 一、基于STM32的循迹避障小车1.题目要求2.思路2.1 主控2.2 显示2.3 电源模块2.4 舵机云台2.5 超声波测距2.6 红外循迹模块2.7 蓝牙模块2.8 按键2.9 电机驱动 3.电路仿真3.1 未仿真3.2 自动模式3.3 手动模式3.4 蓝牙模式 4.仿真程序4.1 程序说明4.2 主程序4.3 红外程序…

周星驰导演电影《女足》今日杀青 历时三月圆满收官

迪丽热巴主演的周星驰执导电影《女足》于2025年6月2日正式杀青。此前有报道称,新电影《女足》的路透拍摄画面曝光,其中包含特效动作场面,看起来与《少林足球》相似。该片由周星驰执导,结合了少林功夫与足球元素,讲述了中国女子足球队“峨嵋队”征战亚冠杯的热血故事。整个…

树欲静而风不止,子欲养而亲不待

2025年6月2日,13~26℃,一般 待办: 物理2 、物理 学生重修 职称材料的最后检查 教学技能大赛PPT 遇见:使用通义创作了一副照片,很好看!都有想用来创作自己的头像了! 提示词如下: A b…

《Global Securities Markets》中保证金与卖空制度知识点总结

一、保证金制度核心要点 (一)保证金基础概念 在证券交易语境下,保证金是投资者开展特定交易时向经纪商缴纳的现金或证券抵押品,其目的在于保障经纪商因向投资者提供信贷而面临的风险敞口。从本质上看,保证金构建起投…

【工具】文章生成器|突破人类认知极限:HUST-GenPaper 智能写作工具设计与实践

效果: 以下是介绍,我这篇博客就是用我自己这个项目复制prompt去问问小白写的,耗时二十分钟,比我以前写博客需要的时间少多了…… 总之就是突然有个点子,然后顺手就实现了,然后分享给大家,有用…

【AI论文】Skywork Open Reasoner 1技术报告

摘要:DeepSeek-R1的成功凸显了强化学习(RL)在提升大型语言模型(LLMs)推理能力方面的重要作用。在本研究中,我们提出了Skywork-OR1,这是一种针对长思维链(Chain-of-Thought&#xff0…

webfuture:如何屏蔽后台发文界面的保存为新文章按钮?

问题描述: 如何屏蔽后台发文界面的保存为新文章按钮? 问题解决:修改这个文件 /Admin/Content/Base/css/base.css 定义这个的id saveAsNewItemSubmit #saveAsNewItemSubmit{display: none;}

类和对象:实现日期类

目录 概述 一.实现日期类的基本框架 二.实现比较的运算符重载 1.>的运算符重载 2.的运算符重载 3.其余的比较运算符重载 三.加减天数的运算符重载 1.,的运算符重载 2.-,-的运算符重载 3.对1和2的小优化 四.两个日期类相减的重载 1.,--的重…

uniapp中view标签使用范围

不止用于微信小程序。兼容型号,是uniapp内置组件之一,在uniapp中进行了跨平台适配。支持所有uniapp的平台。如微信小程序、h5、app、支付宝小程序