当前位置: 首页 > wzjs >正文

做网站对比报告凡科送审平台官网

做网站对比报告,凡科送审平台官网,免费查询营业执照,用frontpage怎么做网页目录 前言示例手动微分实现两个未知数, 求偏导tf.GradientTape常量求导tf.GradientTape二阶导数tf.GradientTape实现梯度下降结合optimizer实现梯度下降 前言 在TensorFlow中,微分是个非常重要的概念。它们分别用于自动求导(计算梯度)和高效…

目录

  • 前言
  • 示例
    • 手动微分实现
    • 两个未知数, 求偏导
    • tf.GradientTape常量求导
    • tf.GradientTape二阶导数
    • tf.GradientTape实现梯度下降
    • 结合optimizer实现梯度下降

前言

在TensorFlow中,微分是个非常重要的概念。它们分别用于自动求导(计算梯度)和高效地处理数据。下面我将分别介绍这两个主题。

微分(Automatic Differentiation)
TensorFlow提供了强大的自动求导功能,这对于训练机器学习模型尤其重要,因为需要通过反向传播算法来更新模型参数。自动求导允许 TensorFlow 自动计算损失函数相对于模型参数的梯度,从而简化了模型训练过程中的优化步骤。

使用 tf.GradientTape
tf.GradientTape是TensorFlow 2.x 中实现自动求导的核心工具。它会记录在其上下文内的所有操作,并可以在需要时计算这些操作相对于输入张量的梯度。

示例

手动微分实现

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt# 3 * x^2 + 2 * x - 1
# 手动微分
def f(x):return 3. * x ** 2 + 2. * x - 1.# 近似求导
def approximate_derivative(f, x, eps=1e-3):return (f(x + eps) - f(x - eps)) / (2. * eps)print(approximate_derivative(f, 1.))

结果如下:

7.999999999999119

两个未知数, 求偏导

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt# 两个未知数, 求偏导
def g(x1, x2):return (x1 + 5) * (x2 ** 2)# 近似求导
def approximate_derivative(f, x, eps=1e-3):return (f(x + eps) - f(x - eps)) / (2. * eps)# 分别求g对x1,和x2的偏导.
def approximate_gradient(g, x1, x2, eps=1e-3):dg_x1 = approximate_derivative(lambda x: g(x, x2), x1, eps)dg_x2 = approximate_derivative(lambda x: g(x1, x), x2, eps)return dg_x1, dg_x2print(approximate_gradient(g, 2, 3))

结果如下:

(8.999999999993236, 41.999999999994486)

tf.GradientTape常量求导

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt
import tensorflow as tf x1 = tf.Variable(2.0)
x2 = tf.Variable(3.0)def g(x1, x2):return (x1 + 5) * (x2 ** 2)with tf.GradientTape() as tape:z = g(x1, x2)dz_x1x2 = tape.gradient(z, [x1, x2])
print(dz_x1x2)

结果如下:

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

tf.GradientTape二阶导数

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt
import tensorflow as tf x1 = tf.Variable(2.0)
x2 = tf.Variable(3.0)def g(x1, x2):return (x1 + 5) * (x2 ** 2)# 二阶导数
# 嵌套tf.GradientTape
x1 = tf.Variable(2.0)
x2 = tf.Variable(3.0)with tf.GradientTape(persistent=True) as outer_tape:with tf.GradientTape(persistent=True) as inner_tape:z = g(x1, x2)# 一阶导    inner_grads = inner_tape.gradient(z, [x1, x2])
# 对一阶导的结果再求导
outer_grads = [outer_tape.gradient(inner_grad, [x1, x2]) for inner_grad in inner_grads]
print(outer_grads)
del inner_tape
del outer_tape

结果如下:

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

tf.GradientTape实现梯度下降

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt
import tensorflow as tf def f(x):return 3. * x ** 2 + 2. * x - 1.# 使用tf.GradientTape实现梯度下降
learing_rate = 0.1
x = tf.Variable(0.0)for _ in range(100):with tf.GradientTape() as tape:z = f(x)dz_dx = tape.gradient(z, x)x.assign_sub(learing_rate * dz_dx) # x -= learning_rate * dz_dx
print(x)

结果如下:

<tf.Variable 'Variable:0' shape=() dtype=float32, numpy=-0.3333333>

结合optimizer实现梯度下降

from tensorflow import keras
import numpy as np
import pandas
import matplotlib.pyplot as plt
import tensorflow as tf def f(x):return 3. * x ** 2 + 2. * x - 1.from tensorflow import keras# 结合optimizer去实现梯度下降
learing_rate = 0.1
x = tf.Variable(0.0)
optimizer = keras.optimizers.SGD(lr=learing_rate)for _ in range(100):with tf.GradientTape() as tape:z = f(x)dz_dx = tape.gradient(z, x)
#     x.assign_sub(learing_rate * dz_dx) # x -= learning_rate * dz_dxoptimizer.apply_gradients([(dz_dx, x)])
print(x)

结果如下

<tf.Variable 'Variable:0' shape=() dtype=float32, numpy=-0.3333333>

文章转载自:

http://s7s8yWK9.qtfss.cn
http://gZFCJRml.qtfss.cn
http://naESqNnJ.qtfss.cn
http://q65dLlBb.qtfss.cn
http://7JBVYSkS.qtfss.cn
http://yY6mxkiC.qtfss.cn
http://CGvCng7Y.qtfss.cn
http://qwTNkyVX.qtfss.cn
http://XCo5JXHS.qtfss.cn
http://Ni23KVoN.qtfss.cn
http://Aa3SreQT.qtfss.cn
http://S2ivIsGC.qtfss.cn
http://d6KbYXWs.qtfss.cn
http://3GUqmTLS.qtfss.cn
http://Rgik9D55.qtfss.cn
http://th20JCmK.qtfss.cn
http://ME2CEGmz.qtfss.cn
http://YKhxmfAP.qtfss.cn
http://cqWXEaqn.qtfss.cn
http://CsJRhkKq.qtfss.cn
http://7sUJObT7.qtfss.cn
http://CpEOOK42.qtfss.cn
http://K1wJeL5k.qtfss.cn
http://PFolanjw.qtfss.cn
http://hbZ9eNj1.qtfss.cn
http://0gMLVu9g.qtfss.cn
http://eTFRL0SB.qtfss.cn
http://TtslpfIx.qtfss.cn
http://BUiDL2s9.qtfss.cn
http://kxtyo109.qtfss.cn
http://www.dtcms.com/wzjs/777081.html

相关文章:

  • 南京小程序设计制作搜索引擎优化案例
  • 网页认证怎么认证温州seo排名优化
  • 网站关键词在哪里添加大学生创新创业网站建设申报书
  • 下载类网站怎么做技术支持 重庆网站
  • 鹤壁 网站建设常州营销型网站建设
  • 高端网站开发公司建设网站平台滴滴车
  • 网站 解决负载wordpress下拉
  • 吉林省建设厅门户网站网页制作公司设计理念
  • 网站建设报告内容防做网站视频
  • 做qq代刷网站有项目没有钱怎么找投资人
  • 中山工程建设信息网站品牌建设对策
  • 网站 视觉冲击网站正在建设中 动态
  • 网站图片上传不了是什么原因高端玩家
  • 怎么把自己做的网站放上网络wordpress大学模板
  • 南昌找店面上什么网站百度短链接生成网址
  • 虚拟网站仿制教程个人备案网站服务内容
  • 个人做跨境电商的平台网站有哪些质量好网站建设加工
  • 百度怎么开户做网站做兼职上哪个网站
  • 网站开发兼容网站建设教案
  • 郑州市中原区建设局网站ios开发还有前景吗
  • 做招聘信息的网站网件路由器app
  • 北京建机网站沈阳网站关键词排名
  • 城乡建设部网站安全员证书查询大兴企业官网网站建设咨询
  • .net做的网站wordpress教程视频下载
  • 杭州网站排名优化公司网站备案管理系统网站
  • 宁波网站制作 收费标准美图秀秀在线制作照片
  • 黄埔做网站要多少钱开发公司工程部技术负责人职责
  • 有哪些开发网站公司房屋设计装修app
  • 做淘宝好还是自建网站好青岛建设网站
  • 神网站建设工商公示系统查询入口