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 数据加密代码
Dec 24 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
Python实现Event回调机制的方法
Feb 13 Python
python集合删除多种方法详解
Feb 10 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 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
小文件php+SQLite存储方案
2010/09/04 PHP
php自动加载方式集合
2016/04/04 PHP
php实现登陆模块功能示例
2016/10/20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
List Installed Hot Fixes
2007/06/12 Javascript
页面中js执行顺序
2009/11/09 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue引入axios同源跨域问题
2018/09/27 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python生成指定长度的随机数密码
2014/01/23 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
幼儿园家长会邀请函
2014/01/15 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
化学专业自荐信
2014/05/28 职场文书
销售竞赛活动方案
2014/08/23 职场文书
少先队活动总结
2014/08/29 职场文书
2014年除四害工作总结
2014/12/06 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL