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编写web API的教程
Apr 30 Python
在Python的Django框架中包装视图函数
Jul 20 Python
python开发之文件操作用法实例
Nov 13 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
python构建深度神经网络(DNN)
Mar 10 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
高效率JavaScript编写技巧整理
2013/08/23 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
JS实现轮播图效果
2020/01/11 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015学校年度工作总结
2015/05/11 职场文书
公司辞职信模板
2015/05/13 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
python中print格式化输出的问题
2021/04/16 Python