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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
python保存网页图片到本地的方法
Jul 24 Python
python list转矩阵的实例讲解
Aug 04 Python
windows下numpy下载与安装图文教程
Apr 02 Python
Python3内置模块random随机方法小结
Jul 13 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
python如何实现图片压缩
Sep 11 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
python元组拆包实现方法
Feb 28 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
CI框架的安全性分析
2016/05/18 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
javascript打印输出json实例
2013/11/11 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
详解python的argpare和click模块小结
2019/03/31 Python
python函数的作用域及关键字详解
2019/08/20 Python
python 读取数据库并绘图的实例
2019/12/03 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python实现简单坦克大战
2020/03/27 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
python 制作网站小说下载器
2021/02/20 Python
初中生300字旷课检讨书
2014/11/19 职场文书
个人收入证明格式
2015/06/24 职场文书
新闻稿怎么写
2015/07/18 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书