TensorFlow Autodiff自动微分详解


Posted in Python onJuly 06, 2020

如下所示:

with tf.GradientTape(persistent=True) as tape:
 z1 = f(w1, w2 + 2.)
 z2 = f(w1, w2 + 5.)
 z3 = f(w1, w2 + 7.)
 z = [z1,z3,z3]
[tape.gradient(z, [w1, w2]) for z in (z1, z2, z3)]

输出结果

[[<tf.Tensor: id=56906, shape=(), dtype=float32, numpy=40.0>,
 <tf.Tensor: id=56898, shape=(), dtype=float32, numpy=10.0>],
 [<tf.Tensor: id=56919, shape=(), dtype=float32, numpy=46.0>,
 <tf.Tensor: id=56911, shape=(), dtype=float32, numpy=10.0>],
 [<tf.Tensor: id=56932, shape=(), dtype=float32, numpy=50.0>,
 <tf.Tensor: id=56924, shape=(), dtype=float32, numpy=10.0>]]
with tf.GradientTape(persistent=True) as tape:
 z1 = f(w1, w2 + 2.)
 z2 = f(w1, w2 + 5.)
 z3 = f(w1, w2 + 7.)
 z = [z1,z2,z3]
tape.gradient(z, [w1, w2])

输出结果

[<tf.Tensor: id=57075, shape=(), dtype=float32, numpy=136.0>,

<tf.Tensor: id=57076, shape=(), dtype=float32, numpy=30.0>]

总结:如果对一个listz=[z1,z2,z3]求微分,其结果将自动求和,而不是返回z1、z2和z3各自对[w1,w2]的微分。

补充知识:Python/Numpy 矩阵运算符号@

如下所示:

A = np.matrix('3 1; 8 2')

B = np.matrix('6 1; 7 9')

A@B
matrix([[25, 12],
  [62, 26]])

以上这篇TensorFlow Autodiff自动微分详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Flask框架中实现分页功能的教程
Apr 20 Python
python创建列表并给列表赋初始值的方法
Jul 28 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
利用aardio给python编写图形界面
Aug 21 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
python程序输出无内容的解决方式
Apr 09 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
Keras loss函数剖析
Jul 06 #Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 #Python
Python自省及反射原理实例详解
Jul 06 #Python
如何通过命令行进入python
Jul 06 #Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 #Python
python else语句在循环中的运用详解
Jul 06 #Python
Keras模型转成tensorflow的.pb操作
Jul 06 #Python
You might like
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
一个实用的php验证码类
2017/07/06 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
layDate日期控件使用方法详解
2018/11/15 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
python中迭代器(iterator)用法实例分析
2015/04/29 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
生产厂厂长岗位职责
2013/12/25 职场文书
医院院务公开实施方案
2014/05/03 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
校园会短篇的广播稿
2014/10/21 职场文书