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通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
详解Python中的array数组模块相关使用
Jul 05 Python
python requests 使用快速入门
Aug 31 Python
Python批处理更改文件名os.rename的方法
Oct 26 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
python爬虫工具例举说明
Nov 30 Python
python 如何在测试中使用 Mock
Mar 01 Python
python实战之90行代码写个猜数字游戏
Apr 22 Python
Python3.10的一些新特性原理分析
Sep 15 Python
Python实战实现爬取天气数据并完成可视化分析详解
Jun 16 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
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
php实现生成验证码实例分享
2016/04/10 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
Python验证码截取识别代码实例
2020/05/16 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
车队司机自我鉴定
2014/03/02 职场文书
公证委托书模板
2014/04/03 职场文书
团队队名口号大全
2014/06/06 职场文书
激励口号大全
2014/06/17 职场文书
2015政治思想表现评语
2015/03/25 职场文书