使用tensorflow 实现反向传播求导


Posted in Python onMay 26, 2021

看代码吧~

X=tf.constant([-1,-2],dtype=tf.float32)
w=tf.Variable([2.,3.])
truth=[3.,3.]
Y=w*X
# cost=tf.reduce_sum(tf.reduce_sum(Y*truth)/(tf.sqrt(tf.reduce_sum(tf.square(Y)))*tf.sqrt(tf.reduce_sum(tf.square(truth)))))
cost=Y[1]*Y
optimizer = tf.train.GradientDescentOptimizer(1).minimize(cost)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(Y))
    print(sess.run(w))
    print(sess.run(cost))
 
    print(sess.run(Y))
    sess.run(optimizer)
 
    print(sess.run(w))

结果如下

使用tensorflow 实现反向传播求导

W由[2,3]变成[-4,-25]

过程:

f=y0*y=w0*x0*w*x=[w1*x1*w0*x0,w1*x1*w1*x1,]

f对w0求导,得w1*x0*x1+0=6 ,所以新的w0=w0-6=-4

f对w1求导,得 w0*x0*x1+2*w1*x1*x1=28,所以新的w1=w1-28=-25

补充:【TensorFlow篇】--反向传播

一、前述

反向自动求导是 TensorFlow 实现的方案,首先,它执行图的前向阶段,从输入到输出,去计算节点
值,然后是反向阶段,从输出到输入去计算所有的偏导。

二、具体

1、举例

使用tensorflow 实现反向传播求导

图是第二个阶段,在第一个阶段中,从 x =3和 y =4开始去计算所有的节点值

f ( x / y )=x 2 * y + y + 2

求解的想法是逐渐的从图上往下,计算 f ( x , y )的偏导,使用每一个连续的节点,直到我们到达变量节
点,严重依赖链式求导法则!

2.具体过程:

因为n7是输出节点,所以f=n7,所以?f/??7= 1

让我们继续往下走到n5节点,?f/??5=?f/??7∗??7/??5 . 我们已知?f/??7=1,所以我们需要知道??7/??5 ,因为n7=n5+n6,所以我们求得??7/??5=1,所以?f/??5=1*1=1

现在我们继续走到节点n4,?f/??4=?f/??5∗??5/??4,因为n5=n4*n2,我们求得�?5/??4=n2,?f/??4=1*4

沿着图一路向下,我们可以计算出所有节点,就能计算出 ??/?x= 24,??/?y= 10

那我们就可以利用和上面类似的方式方法去计算??/??

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python sort、sorted高级排序技巧
Nov 21 Python
python魔法方法-自定义序列详解
Jul 21 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
Python日期时间Time模块实例详解
Apr 15 Python
Python实现插入排序和选择排序的方法
May 12 Python
Python Subprocess模块原理及实例
Aug 26 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
OpenCV读取与写入图片的实现
Oct 13 Python
python递归函数用法详解
Oct 26 Python
python基础学习之递归函数知识总结
TensorFlow的自动求导原理分析
Django分页器的用法你都了解吗
May 26 #Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 #Python
python numpy中multiply与*及matul 的区别说明
May 26 #Python
python文本处理的方案(结巴分词并去除符号)
Django操作cookie的实现
May 26 #Python
You might like
PHP中redis的用法深入解析
2014/02/20 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
javascript验证身份证号
2015/03/03 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
Python3最长回文子串算法示例
2019/03/04 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python打开文件的方式有哪些
2020/06/29 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
教师求职信
2014/06/17 职场文书
计划生育标语
2014/06/23 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
mysql 获取相邻数据项
2022/05/11 MySQL