使用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 用户登录验证的小例子
Mar 06 Python
Python解析excel文件存入sqlite数据库的方法
Nov 15 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Python 实现交换矩阵的行示例
Jun 26 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
python Plotly绘图工具的简单使用
Mar 03 Python
python3 xpath和requests应用详解
Mar 06 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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
德劲1103的维修打理经验
2021/03/02 无线电
PHP 引用文件技巧
2010/03/02 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
jquery提升性能最佳实践小结
2010/12/06 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
vue el-table实现行内编辑功能
2019/12/11 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
python操作redis数据库的三种方法
2020/09/10 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
大整数数相乘的问题
2012/07/22 面试题
2014新年元旦活动策划方案
2014/02/18 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL