TensorFlow的自动求导原理分析

作者:qq_25094489 时间:2023-06-14 15:22:02 

原理:

TensorFlow使用的求导方法称为自动微分(Automatic Differentiation),它既不是符号求导也不是数值求导,而类似于将两者结合的产物。

最基本的原理就是链式法则,关键思想是在基本操作(op)的水平上应用符号求导,并保持中间结果(grad)

基本操作的符号求导定义在\tensorflow\python\ops\math_grad.py文件中,这个文件中的所有函数都用RegisterGradient装饰器包装了起来,这些函数都接受两个参数op和grad,参数op是操作,第二个参数是grad是之前的梯度。

链式求导代码:

TensorFlow的自动求导原理分析

举个例子:

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

TensorFlow的自动求导原理分析

补充:聊聊Tensorflow自动求导机制

自动求导机制

在即时执行模式下,Tensorflow引入tf.GradientTape()这个“求导记录器”来实现自动求导。

计算函数y(x)=x^2在x = 3时的导数:


import tensorflow as tf
#定义变量
x = tf.Variable(initial_value = 3.)

#在tf.GradientTape()的上下文内,所有计算步骤都会被记录以用于求导
with tf.GradientTape() as tape:
   #y = x^2
   y = tf.square(x)
#计算y关于x的导数(斜率,梯度)
y_grad = tape.gradient(y,x)
print([y,y_grad])

输出:

[<tf.Tensor: shape=(), dtype=float32, numpy=9.0>, <tf.Tensor: shape=(), dtype=float32, numpy=6.0>]

来源:https://blog.csdn.net/qq_25094489/article/details/79390484

标签:TensorFlow,自动求导
0
投稿

猜你喜欢

  • SQL Server把某个字段的数据用一条语句转换成字符串

    2024-01-13 16:10:12
  • Python Opencv实战之文字检测OCR

    2023-03-18 14:05:41
  • SQL Server2019安装后出现连接失败的解决方法

    2024-01-23 05:16:24
  • 解决python打不开文件(文件不存在)的问题

    2021-10-15 02:39:46
  • 在Python中使用dict和set方法的教程

    2023-12-20 20:29:07
  • Golang 发送http请求时设置header的实现

    2024-05-08 10:45:45
  • python实现马丁策略回测3000只股票的实例代码

    2023-03-02 01:12:29
  • Python实现的银行系统模拟程序完整案例

    2023-03-15 21:00:26
  • 防止表格或或div层被撑开的几种方法

    2008-01-01 15:33:00
  • javascript动态添加表格数据行(ASP后台数据库保存例子)

    2024-02-27 11:17:31
  • PHP Document 代码注释规范

    2023-11-14 11:50:54
  • python读取并定位excel数据坐标系详解

    2022-02-25 19:01:00
  • Python中顺序表原理与实现方法详解

    2023-03-24 22:57:48
  • python 实现rolling和apply函数的向下取值操作

    2022-03-15 07:10:08
  • 利用python实现xml与数据库读取转换的方法

    2024-01-23 06:27:51
  • Python 文件处理之open()函数

    2021-03-04 02:26:49
  • go语言实现sftp包上传文件和文件夹到远程服务器操作

    2024-05-08 10:22:18
  • 使用Python实现简单的服务器功能

    2021-06-29 09:25:31
  • python基础教程项目三之万能的XML

    2022-09-22 05:33:25
  • Python实战之利用Geopandas算出每个省面积

    2022-05-11 07:46:39
  • asp之家 网络编程 m.aspxhome.com