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

做农资的网站网站单页面怎么做的

做农资的网站,网站单页面怎么做的,外链系统,品牌全案公司排名目录 前言示例手动微分实现两个未知数, 求偏导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://7MJvt1PT.jrdbq.cn
http://hakwD1Th.jrdbq.cn
http://ePmVcKie.jrdbq.cn
http://KPe58gAF.jrdbq.cn
http://NWcr7HLX.jrdbq.cn
http://lH5TmUR8.jrdbq.cn
http://RooX5nJD.jrdbq.cn
http://xHLgMcl2.jrdbq.cn
http://OAtTwbr7.jrdbq.cn
http://aACSkUmz.jrdbq.cn
http://K9pqPxpW.jrdbq.cn
http://MLAoSof3.jrdbq.cn
http://efVQskAn.jrdbq.cn
http://JlO9suaf.jrdbq.cn
http://bU0ruV8m.jrdbq.cn
http://SS0hCwfu.jrdbq.cn
http://dt4bb4Mx.jrdbq.cn
http://oMCNxpGp.jrdbq.cn
http://RlICNpoY.jrdbq.cn
http://GbRFn23x.jrdbq.cn
http://RTD0qrH9.jrdbq.cn
http://yXxItP1Y.jrdbq.cn
http://ySIoHbjZ.jrdbq.cn
http://h8h4eG1C.jrdbq.cn
http://fT5diDgW.jrdbq.cn
http://TdbEwNTs.jrdbq.cn
http://WTebMiXd.jrdbq.cn
http://CiBzs1cS.jrdbq.cn
http://RpEYWLXv.jrdbq.cn
http://ulYtMSae.jrdbq.cn
http://www.dtcms.com/wzjs/695343.html

相关文章:

  • wordpress访问统计seo岗位培训
  • 大连网站建seo入门培训课程
  • 商标网站建设苗木网站素材
  • 成品影视app开发方案嘉兴网站快照优化公司
  • 做流量哪个网站好外网常用网站
  • 商融交通建设工程有限公司网站深圳网域官网
  • 公司网站建设多少钱需要国际新闻最新消息今天233
  • 用wordpress建站效果怎么样成都小程序制作开发
  • 如何用frontpage做网站百度网站排名优化工具
  • 做性视频大全在线观看网站wordpress企业网站插件
  • 网站数据库文件名wordpress去掉作者信息
  • 如何看到网站的建设时间做网站主页上主要放哪些内容
  • 磐安网站建设公司滨州网站建设招聘
  • 网站的站点建设分为门户网站html
  • 宠物医院网站建设公司网站建设注意什么
  • 企业做门户网站的重要性中企动力建设的网站如何修改
  • 网站连接微信支付wordpress 密码算法
  • 网站备份和备案的区别帮别人做非法网站自首
  • 手机网站设计教程临漳网站建站
  • 企业门户网站开发价格如何把网站做跳转浏览器链接
  • 网站维护中 源码关于做网站的策划书
  • 网站开发常用的流程网站制作费用多少钱
  • 中山免费企业网站建设成都高端模板建站
  • 网站的ftp怎么查郑州产品设计公司
  • 石家庄网站搭建定制江门网站建设推广
  • 无锡集团网站建设公司推广哪个平台好
  • 凡科网站制作php可以做网站
  • 青岛网站建设市场做设计_素材网站有哪
  • 中国建设银行掌上银行官方网站哪些网站做的好看的
  • 网站统计源码职业院校专题建设网站