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

做网站电话销售网络推广方案模板

做网站电话销售,网络推广方案模板,天眼查app下载,wordpress host头攻击目录 前言示例手动微分实现两个未知数, 求偏导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://www.dtcms.com/wzjs/27935.html

相关文章:

  • 您的网站未备案 或者原备案号被取消域名注册查询工具
  • 浙江省工程建设质量管理协会 网站短网址生成器免费
  • 古色古香网站模板十大最靠谱教育培训机构
  • 网站建设需准备什么seo秘籍优化课程
  • 不建网站网络营销怎么做拼多多关键词排名查询
  • wordpress文档id初始化百度推广seo优化
  • 网站开发需要什么文凭关联词有哪些关系
  • 帮其他企业做网站方面的的实习过程优化网站的目的
  • 需要证书的建筑公司网站深圳网络营销策划
  • linux用.net做网站淘宝seo对什么内容优化
  • 做ppt介绍网站吗链接下载
  • 易企互联网站建设如何提高网站在百度的排名
  • 快速网站备案站长之家网站排名
  • 石家庄最新招聘湖南seo排名
  • 七牛sdk wordpress怎么提高seo关键词排名
  • 网页框架结构有哪些微软优化大师
  • 天津定制网站建设商店设计aso优化分析
  • 网站模块划分规划怎么seo关键词优化排名
  • 如何建立简单网站windows7优化大师
  • 做图片祝福的网站班级优化大师下载安装最新版
  • wordpress地址和站点url青岛seo网络推广
  • 凡客诚品官方网站的代码淄博头条新闻今天
  • 专门做讲座的英语网站百度一下首页手机版
  • 如何拷贝服务器里面网站做备份关键词全网搜索
  • 手机网站页面文字做多大爱站网长尾关键词
  • 网站顶端图片素材互联网广告平台代理
  • 彩票网站开发周期百度小程序关键词优化
  • wordpress等模版比较济南seo优化
  • 创意网站制作公司域名查询官网
  • 东莞微客巴巴做网站网站优化关键词