02-自动求导搞不定nn_Module和autograd原理一次讲透
自动求导搞不定?nn.Module和autograd原理一次讲透我之前写训练循环的时候,遇到一个诡异的问题:loss在下降,但模型参数完全没更新。debug了半天,发现是requires_grad=False搞的鬼。更气人的是,这种bug不报错,你还得自己发现模型没学到东西。这篇把PyTorch自动求导和nn.Module的核心原理讲透。不是那种"autograd是自动微分引擎"的废话,而是真正搞清楚:梯度怎么算的、计算图怎么建的、nn.Module帮你管了什么。autograd到底在干什么一句话:autograd在前向传播时记录操作,构建计算图;反向传播时沿计算图自动求导。但"计算图"长什么样?我用一个具体例子拆给你看:importtorch x=torch.tensor(2.0,requires_grad=True)y=torch.tensor(3.0,requires_grad=True)z=x*y+x**2# z = xy + x²z.backward()print(x.grad)# dz/dx = y + 2x = 3 + 4 = 7print(y.grad)# dz/dy = x = 2前向传播时,PyTorch做的事:x * y→ 创建Mul节点,记录"z₁ = x * y"x ** 2→ 创建Pow节点,记录"z₂ = x²"z₁ + z₂→ 创建Add节点,记录"z = z₁ + z₂"反向传播时,从z开始,沿着Add→Mul/Pow→x/y的路径,用链式法则逐节点计算梯度。计算图的两种模式:模式原理PyTorch用的特点前向模式沿前向方向同时算值和导数否适合输入维度小于输出维度反向模式先算值,再反向算导数是适合输出维度小于输入维度(训练就是这种)深度学习几乎都是"很多参数→一个loss",反向模式效率更高。PyTorch选对了。requires_grad的门道requires_grad是控制梯度计算的总开关,但它的规则比你想的复杂。规则1:运算结果的requires_grad由输入决定a=torch.tensor([1.0,2.0],requires_grad=True)b=torch.tensor([3.0,4.0],requires_grad=False)c=a+b# c.requires_grad = True,因为有a参与d=b*2# d.requires_grad = False,全是不求梯度的输入只要有一个输入要梯度,输出就要梯度。这是合理的设计——否则梯度链断了,a的梯度算不出来。规则2:叶子张量和非叶子张量这是很多人搞混的概念:x=torch.tensor([1.0,2.0],requires_grad=True)# 叶子张量y=x*2# 非叶子张量z=y.sum()z.backward()print(x.grad)# tensor([2., 2.]) ← 叶子张量保留梯度print(y.grad)# None ← 非叶子张量的梯度被释放了叶子张量:直接创建的张量(不是通过运算得到的)。它们的.grad会被保留。非叶子张量:运算产生的中间结果。默认反向传播后梯度就释放了,省内存。如果你需要非叶子张量的梯度,用retain_grad():y=x*2y.retain_grad()# 告诉PyTorch:这个中间结果的梯度我也想看z=y.sum()z.backward()print(y.grad)# tensor([2., 2.]) ← 现在有了规则3:no_grad和inference_mode推理时不需要梯度,用这两种方式关闭:# 方式1:no_gradwithtorch.no_grad():output=model(input)# 不构建计算图,省内存# 方式2:inference_mode(更快,更严格)

相关新闻

AD19隐藏网络警告解析:原理图库引脚属性规范与多部件元件处理

AD19隐藏网络警告解析:原理图库引脚属性规范与多部件元件处理

1. 项目概述:AD19中一个“隐藏”的警告 如果你正在使用Altium Designer 19(AD19)进行PCB设计,尤其是在处理一些从旧版本迁移过来或者结构比较复杂的原理图库时,很可能在编译项目或检查电气规则时,在Message…

2026/8/1 6:49:16 阅读更多 →
MusicFree插件化音乐播放器:免费听歌的完整指南与实用技巧

MusicFree插件化音乐播放器:免费听歌的完整指南与实用技巧

MusicFree插件化音乐播放器:免费听歌的完整指南与实用技巧 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/maotoumao/MusicFree 在数字音乐时代,寻找一款真正免费、无广告且功能强大的音乐播…

2026/8/1 6:48:16 阅读更多 →
Unitree ROS仿真包深度解析:机器人控制与仿真的革命性突破

Unitree ROS仿真包深度解析:机器人控制与仿真的革命性突破

Unitree ROS仿真包深度解析:机器人控制与仿真的革命性突破 【免费下载链接】unitree_ros 项目地址: https://gitcode.com/gh_mirrors/un/unitree_ros Unitree ROS仿真包为四足与人形机器人控制算法研发提供了突破性的开源解决方案,实现了从仿真到…

2026/8/1 6:48:16 阅读更多 →

最新新闻

SAP系统稳定运行的坚实后盾:专业运维,赋能企业数字化长效价值

SAP系统稳定运行的坚实后盾:专业运维,赋能企业数字化长效价值

SAP系统稳定运行的坚实后盾:专业运维,赋能企业数字化长效价值数字化浪潮下,SAP 系统已经成为众多制造、贸易、科创企业承载财务、供应链、生产管理的核心数字中枢。不少企业耗费资源完成 SAP 实施上线后,却容易忽略持续运维的重要…

2026/8/1 7:32:00 阅读更多 →
盈彩 AI 深度实测:从“一句话”到“可编辑PPTX”,开发者与职场人的提效新范式

盈彩 AI 深度实测:从“一句话”到“可编辑PPTX”,开发者与职场人的提效新范式

在日常开发、运维或项目推进中,PPT往往是不可或缺的沟通载体。然而,对于技术人而言,从梳理逻辑大纲、统一排版规范到寻找合适的配图,整套流程的繁琐程度丝毫不亚于排查一段复杂代码。一份中等规模的汇报材料,动辄消耗数…

2026/8/1 7:32:00 阅读更多 →
放射组学在脑转移患者生存预测中的关键技术与应用挑战

放射组学在脑转移患者生存预测中的关键技术与应用挑战

那天下午,肿瘤科办公室里,主治医生刚看完一位脑转移患者的复查影像。他指着屏幕上的片子说:“你看,全脑放疗后,肿瘤确实缩小了,但病人整体状态就是不见好转。要是能提前知道哪些患者能从治疗中真正获益&…

2026/8/1 7:32:00 阅读更多 →
阿里距离AI Coding两连冠只差5个月

阿里距离AI Coding两连冠只差5个月

卫冕冠军的冲刺时刻要来了。作者|李昱佳编辑|古廿7月,一份IDC报告把阿里送上了AI Coding的领奖台。报告显示,阿里旗下Qoder以47.6%的份额排在第一。智谱CodeGeeX是11.5%,商汤Raccoon是10.5%,腾讯CodeBuddy是6.9%,百度C…

2026/8/1 7:32:00 阅读更多 →
高并发场景下的微信群发消息任务调度系统实现

高并发场景下的微信群发消息任务调度系统实现

在企业级微信营销、社群运营或公告通知场景中,往往需要向成百上千个好友或微信群批量发送文本、图文链接。如果采用同步串行循环发送的方式,不仅耗时极长,还容易触发风控导致IP被封或请求超时。因此,构建一个支持限流、重试和断点…

2026/8/1 7:32:00 阅读更多 →
CM6800芯片ATX电源维修:从原理到实战的开关电源故障排查指南

CM6800芯片ATX电源维修:从原理到实战的开关电源故障排查指南

1. 项目概述:当你的电脑“心脏”停跳时电脑突然点不亮,风扇纹丝不动,主板上的指示灯一片漆黑。对于很多DIY玩家和维修从业者来说,这通常意味着一个坏消息:ATX电源可能挂了。作为电脑的“心脏”,ATX电源负责…

2026/8/1 7:31:00 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →