Tensorflow2.0笔记 - 链式法则例子

        本笔记简单记录链式法则的原理,关于链式法则,本身和高等数学中的链式求导法则是一样的,深度学习中相关资料可以参考这里:

【深度学习之美22】BP算法详解之链式法则 - 知乎10.5 什么是计算图?我们知道, 神经网络的学习本质,就是找到网络中神经元之间的最佳连接权值。如何快速找到这个最佳权值,是有学问的。通常我们利用数值微分来计算神经网络权值参数的梯度,用梯度下降等策略来确…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/44138371        

import tensorflow as tf
import numpy as np

tf.__version__

#链式法则
#下面的例子有两个表达式,可以验证
#y2对y1的导数 * y1对w的导数 = y2对w的导数
x = tf.constant(1.)
w1 = tf.constant(2.)
b1 = tf.constant(1.)
w2 = tf.constant(2.)
b2 = tf.constant(1.)

with tf.GradientTape(persistent=True) as tape:
    tape.watch([w1,b1,w2,b2])
    y1 = x * w1 + b1
    y2 = y1 * w2 + b2

#分步单独求导
dy2_dy1 = tape.gradient(y2, [y1])[0]
dy1_dw1 = tape.gradient(y1, [w1])[0]
print("dy2/dy1:", dy2_dy1.numpy(), " dy1_dw1:", dy1_dw1.numpy(), "\ndy2/dy1 * dy1/dw1 = ", (dy2_dy1 * dy1_dw1).numpy())
#直接求dy2对w1的导数
dy2_dw1 = tape.gradient(y2, [w1])[0]
print("dy2/dw1:", dy2_dw1.numpy())

运行结果如下:

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦枫Leonlew

希望这篇文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值