使用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中的lstrip()方法使用简介
May 19 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
Python部署web开发程序的几种方法
May 05 Python
分析经典Python开发工程师面试题
Apr 08 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
django rest framework serializers序列化实例
May 13 Python
pandas to_excel 添加颜色操作
Jul 14 Python
Python3基于plotly模块保存图片表格
Aug 03 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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python isinstance判断对象类型
2008/09/06 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
python编写分类决策树的代码
2017/12/21 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
linux下进程间通信的方式
2014/12/23 面试题
彩色的非洲教学反思
2014/02/18 职场文书
清扬洗发水广告词
2014/03/14 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
2015年宣传工作总结
2015/04/08 职场文书
违纪开除通知书
2015/04/25 职场文书
百万英镑观后感
2015/06/09 职场文书
婚庆主持词大全
2015/06/30 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS