深度学习中的计算图

计算图


计算图 的形式表现计算的过程,清晰明了,给人一种很直观的感觉;尤其是在进行反向计算的时候,过程很清晰结构很明确,让人一看就懂。下面介绍这种方法。


计算图的前向计算过程


在这里插入图片描述


计算图反向梯度计算


在这里插入图片描述

导数 d a 、 d b 、 d c da、db、dc dadbdc 分别如下:

  1. d a = ∂ J ∂ a = ∂ J ∂ v ⋅ ∂ v ∂ a = 3 ⋅ 1 = 3 da = \frac{\partial J}{\partial a} = \frac{\partial J}{\partial v}\cdot \frac{\partial v}{\partial a} = 3 \cdot 1 = 3 da=aJ=vJav=31=3;
  2. d b = ∂ J ∂ b = ∂ J ∂ v ⋅ ∂ v ∂ u ⋅ ∂ u ∂ b = 3 ⋅ 1 ⋅ c = 3 c db = \frac{\partial J}{\partial b} = \frac{\partial J}{\partial v}\cdot \frac{\partial v}{\partial u} \cdot \frac{\partial u}{\partial b}=3 \cdot 1 \cdot c = 3c db=bJ=vJuvbu=31c=3c;
  3. d c = ∂ J ∂ b = ∂ J ∂ v ⋅ ∂ v ∂ u ⋅ ∂ u ∂ c = 3 ⋅ 1 ⋅ b = 3 b dc = \frac{\partial J}{\partial b} = \frac{\partial J}{\partial v}\cdot \frac{\partial v}{\partial u} \cdot \frac{\partial u}{\partial c}=3 \cdot 1 \cdot b = 3b dc=bJ=vJuvcu=31b=3b;

验证计算图的结果:用小增量进行验证上述导数计算


a = 5 , b = 3 , c = 2 a = 5, b = 3, c = 2 a=5,b=3,c=2 时, J = 33 J = 33 J=33;

  1. a = 5.001 a = 5.001 a=5.001时, J = 33.001 J = 33.001 J=33.001; d a = 33.003 − 33 5.001 − 5 = 3 da = \frac{33.003 - 33}{5.001 - 5} = 3 da=5.001533.00333=3;
  2. b = 3.001 b = 3.001 b=3.001时, J = 33.006 J = 33.006 J=33.006; d b = 33.006 − 33 3.001 − 3 = 6 = 3 c db = \frac{33.006 - 33}{3.001 - 3} = 6 = 3c db=3.001333.00633=6=3c;
  3. c = 2.001 c = 2.001 c=2.001时, J = 33.009 J = 33.009 J=33.009; d c = 33.009 − 33 2.001 − 2 = 9 = 3 b dc = \frac{33.009 - 33}{2.001 - 2} = 9 = 3b dc=2.001233.00933=9=3b;

参考资料


  1. Andrew Ng 的 DeepLearning
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Networkx 是一个用于创建、操作和研究复杂网络结构的 Python 库。虽然它的主要应用是网络分析和可视化,但也可以用于实现深度学习计算的绘制。 深度学习计算是指由各层神经元和连接权重组成的结构,用于描述神经网络的输入、输出以及隐藏层之间的关系。通过绘制这个计算,我们可以更好地理解和分析深度学习模型。 要使用 Networkx 绘制深度学习计算,首先需要安装 Networkx 库并导入所需的模块。然后,可以创建一个空的有向,表示深度学习计算。接下来,可以使用 Networkx 提供的各种方法来添加节点和边,以模拟神经网络的神经元和连接权重。 例如,可以使用 `add_node` 方法添加输入节点、隐藏节点和输出节点,使用 `add_edge` 方法添加连接权重。可以根据需要设置节点的属性,如名称、类型和形状。还可以为边设置权重和其他属性。 绘制深度学习计算时,可以使用 Networkx 提供的绘功能,如 `draw` 方法。可以设置不同的布局算法,以使绘制出来的计算更加清晰美观。可以设置节点和边的样式、颜色和大小,以增强可读性。 通过使用 Networkx 实现深度学习计算的绘制,可以更好地理解和可视化深度学习模型的结构。这有助于我们更好地分析和优化模型,并加深对深度学习原理的理解。此外,Networkx 还提供了许多论和网络分析的功能,可以进一步拓展我们对深度学习模型的研究和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值