使用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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python提示No module named images的解决方法
Sep 29 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Python基于有道实现英汉字典功能
Jul 25 Python
解决python使用open打开文件中文乱码的问题
Dec 29 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
用Python实现读写锁的示例代码
Nov 05 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 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基于自定义函数记录log日志方法
2017/07/21 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
python套接字流重定向实例汇总
2016/03/03 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
python批量图片处理简单示例
2019/08/06 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
自我评价范文
2013/12/22 职场文书
六年级数学教学反思
2014/02/03 职场文书
企业环保标语
2014/06/10 职场文书
汶川大地震感悟
2015/08/10 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
如何利用python创作字符画
2022/06/25 Python