使用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 bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
Python实现程序的单一实例用法分析
Jun 03 Python
Python操作mongodb的9个步骤
Jun 04 Python
python使用turtle库绘制时钟
Mar 25 Python
Python闭包函数定义与用法分析
Jul 20 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 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实现上传图片保存到数据库的方法
2015/02/11 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
python学生管理系统的实现
2020/04/05 Python
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
大学生演讲稿
2014/04/25 职场文书
社区文化建设方案
2014/05/02 职场文书
体育课外活动总结
2014/07/08 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
机动车登记业务委托书
2014/10/08 职场文书
面试通知单大全
2015/04/20 职场文书
赤壁观后感(2)
2015/06/15 职场文书
初二物理教学反思
2016/02/19 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
nginx lua 操作 mysql
2022/05/15 Servers
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技