使用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 list语法学习(带例子)
Nov 01 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
深入理解python对json的操作总结
Jan 05 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python 实现二维列表转置
Dec 02 Python
简单介绍django提供的加密算法
Dec 18 Python
关于tf.TFRecordReader()函数的用法解析
Feb 17 Python
Python ellipsis 的用法详解
Nov 20 Python
python 下载文件的几种方式分享
Apr 07 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
react基本安装与测试示例
2020/04/27 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python 从远程服务器下载东西的代码
2013/02/10 Python
Python中实现的RC4算法
2015/02/14 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
python中 logging的使用详解
2017/10/25 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Python中字符串与编码示例代码
2019/05/20 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
小学新教师培训方案
2014/02/03 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
医学生求职信
2014/07/01 职场文书
小马王观后感
2015/06/11 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
Golang ort 中的sortInts 方法
2022/04/24 Golang
小程序实现侧滑删除功能
2022/06/25 Javascript