神经网络之计算图repeat节点

🌀 一、什么是 repeat 节点?

✅ 定义:

Repeat 节点 是指同一个变量/张量在计算图中被重复用作多个操作的输入,这些操作彼此独立运行,但都依赖这个变量的值。

换句话说,同一个值,被多次引用,每次引用都在构建不同的路径。


🎯 二、举个具体例子

考虑如下函数:

L=x⋅x+sin⁡(x) L = x \cdot x + \sin(x) L=x⋅x+sin(x)

分析:

  • (x⋅x)( x \cdot x )(x⋅x):使用了 ( x ) 两次
  • (sin⁡(x))( \sin(x) )(sin(x)):又使用了一次
  • 所以,( x ) 被重复使用了三次 → 它在计算图中就是一个 repeat 节点

🧠 三、repeat 节点 vs 分支节点

特性 repeat 节点 分支节点
含义 同一个变量重复用作输入 某个中间值的输出被多个操作引用
强调点 变量的引用次数 数据流的分叉
本质区别 在编程上是多次读取 在图结构上是输出分支
反向传播 所有使用路径的梯度都要合并 同上,使用 梯度累加

实际上,两者在梯度传播逻辑上是一样的。


🔁 四、反向传播中的作用

关键点:

  • 当一个变量被重复使用,它对最终损失 ( L ) 的梯度应当是所有使用路径的梯度之和

继续看上面的例子:

L=x2+sin⁡(x) L = x^2 + \sin(x) L=x2+sin(x)


步骤1:前向传播

  • (a=x⋅x)( a = x \cdot x )(a=x⋅x)
  • ( b = \\sin(x) )
  • (L=a+b)( L = a + b )(L=a+b)

步骤2:反向传播

我们想求(dLdx)( \frac{dL}{dx} )(dxdL)

dLdx=dadx+dbdx=2x+cos⁡(x) \frac{dL}{dx} = \frac{da}{dx} + \frac{db}{dx} = 2x + \cos(x) dxdL=dxda+dxdb=2x+cos(x)

这里 ( x ) 就是 repeat 节点:

  • 在 (x⋅x)( x \cdot x )(x⋅x) 中使用一次 → 导数是 ( 2x )
  • 在 (sin⁡(x))( \sin(x) )(sin(x)) 中使用一次 → 导数是 (cos⁡(x))( \cos(x) )(cos(x))
  • 最终对 ( x ) 的梯度是这两者之和

🧮 五、计算图结构图示

复制代码
     x
   / | \
x*x  |  sin(x)
  \  |   /
     + 
     |
     L

节点 x 被重复读取三次,它是一个 repeat 节点。


🧩 六、repeat 节点在编程中的体现

自动微分框架(如 PyTorch、TensorFlow)中:

  • 变量(如 x)被重复使用时,框架自动在后台构建一个"共享节点"
  • 在反向传播时,每条路径上计算出的梯度会自动累加
  • 用户不需要手动处理 repeat 节点,框架会合并所有路径上传回的梯度

PyTorch 示例代码

python 复制代码
import torch

x = torch.tensor(2.0, requires_grad=True)

# repeat: x 被用在两个地方
y = x * x + torch.sin(x)

y.backward()

print(x.grad)  # 输出 2x + cos(x) = 4 + cos(2)

✅ 输出:

复制代码
tensor(4.5839)

🧠 七、为什么理解 repeat 节点重要?

作用 说明
理解梯度累加机制 确保你知道为什么同一个变量会"收集"多个梯度
调试反向传播问题 在复杂图中追踪某个变量为何产生多个梯度源
构建自定义计算图 如果你用低层 API 实现反向传播,需要手动合并梯度
避免梯度误差 忽略 repeat 会导致梯度少算路径、模型无法收敛

✅ 八、总结

项目 描述
repeat 节点 一个变量/张量在计算图中被多次使用
在计算图中的表现 多条从变量发出的边
反向传播规则 所有路径上的梯度进行累加
框架支持 自动处理 repeat 节点的梯度合并
与分支节点关系 本质上相似,常常同时存在
相关推荐
ai大模型中转api测评4 分钟前
解密 GPT-5.5:原生多模态架构如何重定义 AI 逻辑推理与精准制图
大数据·人工智能·gpt·架构·api
冷雨夜中漫步7 分钟前
Claude Code源码分析——Claude Code Agent Loop 详细设计文档
java·开发语言·人工智能·ai
xixixi7777710 分钟前
英伟达Agent专用全模态模型出击,仿冒AI智能体泛滥成灾,《AI伦理安全指引》即将落地——AI治理迎来“技术-风险-规范”三重奏
人工智能·5g·安全·ai·大模型·英伟达·智能体
直奔標竿12 分钟前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring
数据皮皮侠AI16 分钟前
中国城市可再生能源数据集(2005-2021)|顶刊 Sci Data 11 种能源面板
大数据·人工智能·笔记·能源·1024程序员节
G311354227320 分钟前
如何用 QClaw 龙虾做一个规律作息健康助理 Agent
大数据·人工智能·ai·云计算
幂律智能21 分钟前
零售行业合同管理数智化转型解决方案
大数据·人工智能·零售
旺财矿工23 分钟前
零基础搭建 OpenClaw 2.6.6 Win11 本地化运行环境
人工智能·openclaw·小龙虾·龙虾·openclaw安装包
九成宫24 分钟前
动手学深度学习PyTorch版初步安装过程
人工智能·pytorch·深度学习
Traving Yu24 分钟前
Prompt提示词工程
人工智能·prompt