使用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  连接字符串(join %)
Sep 06 Python
python获取当前日期和时间的方法
Apr 30 Python
Python上下文管理器和with块详解
Sep 09 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
python变量命名的7条建议
Jul 04 Python
对python中的装包与解包实例详解
Aug 24 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
python实现IOU计算案例
Apr 12 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
python IDLE添加行号显示教程
Apr 25 Python
python中的列表和元组区别分析
Dec 30 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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实现数组按指定KEY排序的方法
2015/03/30 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
javascript实现yield的方法
2013/11/06 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
详解django中自定义标签和过滤器
2017/07/03 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
一套软件开发工程师笔试题
2015/05/18 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
料理师求职信
2014/01/30 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
2014年党委工作总结
2014/11/22 职场文书
关于长城的导游词
2015/01/30 职场文书
校长师德表现自我评价
2015/03/05 职场文书
营运督导岗位职责
2015/04/10 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers