使用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 相关文章推荐
django 自定义用户user模型的三种方法
Nov 18 Python
Python实现拼接多张图片的方法
Dec 01 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python写入文件自动换行问题的方法
Jul 05 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
手把手教你实现PyTorch的MNIST数据集
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+DBM的同学录程序(4)
2006/10/09 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
浅析php header 跳转
2013/06/17 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
jQuery实现瀑布流布局
2014/12/12 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
python flask实现分页的示例代码
2018/08/02 Python
基于python实现地址和经纬度转换
2020/05/19 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
Linux的主要特性
2016/09/03 面试题
心理学专业毕业生推荐信范文
2013/11/21 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
导游词之日月潭
2019/11/05 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python