TensorFlow的自动求导原理分析


Posted in Python onMay 26, 2021

原理:

TensorFlow使用的求导方法称为自动微分(Automatic Differentiation),它既不是符号求导也不是数值求导,而类似于将两者结合的产物。

最基本的原理就是链式法则,关键思想是在基本操作(op)的水平上应用符号求导,并保持中间结果(grad)

基本操作的符号求导定义在\tensorflow\python\ops\math_grad.py文件中,这个文件中的所有函数都用RegisterGradient装饰器包装了起来,这些函数都接受两个参数op和grad,参数op是操作,第二个参数是grad是之前的梯度。

链式求导代码:

TensorFlow的自动求导原理分析

举个例子:

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

补充:聊聊Tensorflow自动求导机制

自动求导机制

在即时执行模式下,Tensorflow引入tf.GradientTape()这个“求导记录器”来实现自动求导。

计算函数y(x)=x^2在x = 3时的导数:

import tensorflow as tf
#定义变量
x = tf.Variable(initial_value = 3.)

#在tf.GradientTape()的上下文内,所有计算步骤都会被记录以用于求导
with tf.GradientTape() as tape:
    #y = x^2
    y = tf.square(x)
#计算y关于x的导数(斜率,梯度)
y_grad = tape.gradient(y,x)
print([y,y_grad])

输出:

[<tf.Tensor: shape=(), dtype=float32, numpy=9.0>, <tf.Tensor: shape=(), dtype=float32, numpy=6.0>]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python分析nignx访问日志脚本分享
Feb 26 Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python解惑之整数比较详解
Apr 24 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
python Celery定时任务的示例
Mar 13 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
python实现批量修改服务器密码的方法
Aug 13 Python
Python无头爬虫下载文件的实现
Apr 02 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
Python pygame实现中国象棋单机版源码
Jun 20 Python
Django分页器的用法你都了解吗
May 26 #Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 #Python
python numpy中multiply与*及matul 的区别说明
May 26 #Python
python文本处理的方案(结巴分词并去除符号)
Django操作cookie的实现
May 26 #Python
pandas中DataFrame检测重复值的实现
python 中的@运算符使用
May 26 #Python
You might like
PHP 在线翻译函数代码
2009/05/07 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
javascript回到顶部特效
2016/07/30 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
python解决网站的反爬虫策略总结
2016/10/26 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python实现求特征选择的信息增益
2018/12/18 Python
python实现梯度下降法
2020/03/24 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
酒店中秋节活动方案
2014/01/31 职场文书
对孩子的寄语
2014/04/09 职场文书
大学生心理活动总结
2014/07/04 职场文书
建筑安全生产责任书
2014/07/22 职场文书
学生安全责任书范本
2014/07/24 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
2015年检验科工作总结
2015/04/27 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏