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

神经网络之计算图

🧠 一、什么是计算图?

定义:

计算图是一种有向无环图(DAG, Directed Acyclic Graph),用于表示计算过程。图中的节点表示操作(函数或运算),表示数据(张量)在操作之间的流动。

举个简单例子:

设有函数:

[
z = (x + y) \times (x - y)
]

可以拆解为一系列中间操作:

  1. ( a = x + y )
  2. ( b = x - y )
  3. ( z = a \times b )

这就是一个计算图:

   x     y\   /+   - |   |a   b\ /*|z

🧮 二、计算图的两种主要操作

1. 前向传播(Forward Pass)

  • 按照计算图的拓扑顺序,从输入到输出逐步执行操作,计算出最终结果。
  • 举例:给定 (x = 3, y = 2),按图从头算出 (z = (x + y)(x - y) = 5 \times 1 = 5)

2. 反向传播(Backward Pass)

  • 按照链式法则,从输出反向计算梯度(偏导数),用于神经网络的参数更新。
  • 计算每个中间变量对最终输出的导数(如 (\frac{\partial z}{\partial x}),(\frac{\partial z}{\partial y}))。

⚙️ 三、为什么要用计算图?

✅ 自动微分(Automatic Differentiation)

  • 计算图是实现自动微分(特别是反向模式自动微分,即反向传播)的基础。
  • 对神经网络中成千上万的参数,手动求导几乎不可能,计算图让这个过程自动化。

✅ 并行优化

  • 由于计算图是结构化的 DAG,可以进行并行计算优化、子图融合等,提高计算效率。

✅ 可视化与调试

  • 计算图可视化有助于理解模型结构,发现错误或优化模型。

🔁 四、静态图 vs 动态图

特性静态计算图(Static Graph)动态计算图(Dynamic Graph)
框架TensorFlow 1.x、TheanoPyTorch、TensorFlow 2.x
构建时间先定义整个图,再执行每一步都即时构建和执行
灵活性较低更高,支持动态控制流
性能更容易优化和部署灵活但稍慢

🧱 五、计算图的构成元素

  1. 变量节点(Variable Nodes)

    • 表示输入、权重、偏置等可学习参数。
  2. 常量节点(Constant Nodes)

    • 表示不可学习的固定数值。
  3. 操作节点(Operation Nodes)

    • 表示加、减、乘、除、激活函数(如 ReLU、Sigmoid)等运算。
  4. 中间结果节点

    • 储存运算过程中的临时变量,供后续操作使用。

📈 六、一个例子:简单神经网络中的计算图

设一个简单的前馈神经网络:

[
\begin{align*}
z_1 &= W_1 x + b_1
a_1 &= \text{ReLU}(z_1)
z_2 &= W_2 a_1 + b_2
\hat{y} &= \text{Softmax}(z_2)
\end{align*}
]

计算图的节点包括矩阵乘法、加法、激活函数等,自动微分就可以从 (\hat{y}) 反向求导,更新参数 (W_1, b_1, W_2, b_2)。


🔚 七、总结

优点描述
高效支持大规模并行计算、自动微分
灵活支持复杂网络结构(循环、残差等)
可扩展各种深度学习框架都基于它构建
自动化免去手动推导导数的烦恼
http://www.dtcms.com/a/490510.html

相关文章:

  • Hatch 故障排除指南
  • 神经网络之计算图分支节点
  • 【表格对比分析】Java集合体系、Java并发编程、JVM核心知识、Golang go-zero微服务框架
  • 【任务管理软件】实用工具之ToDoList 9.0.6 详细图文安装教程:高效任务管理的完美起点
  • Linux中zonelist分配策略初始化
  • hadoop的三副本数据冗余策略
  • 岳阳网站建设企业足球比赛直播app下载
  • React 三元运算符页面切换:完整进出流程
  • NumPy zeros_like() 函数详解
  • 网站建设要后台吗公司网页制作哪家好
  • 天津网站建设优化网页设计图片代码
  • CXR SDK实战指南:跨设备AR应用开发
  • 已知明文攻击(Known plaintext):原理、方法与防御体系深度剖析
  • ​SPI四种工作模式
  • 深度学习------YOLOV1和YOLOV2
  • 最小二乘问题详解5:非线性最小二乘求解实例
  • 算法入门数学基础
  • 错误边界:用componentDidCatch筑起React崩溃防火墙
  • 网站备案提交管局原创软文
  • 成都比较好的网站建设公司视频制作和剪辑软件
  • 如何从电脑上卸载安卓应用程序
  • 每日手撕算法--哈希映射/链表存储数求和
  • k8s的pvc和pv
  • RK3562核心板/开发板RT-Linux系统实时性及硬件中断延迟测试
  • node.js把webp,gif格式图片转换成jpg格式图片
  • 不能识别adb/usb口记录
  • SpringBoot-常用注解
  • 支付商城网站制作软件开发报价表
  • wordpress类似的平台快速优化排名公司推荐
  • Git 基础操作指南