0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究优化机器学习模型的关键技术

Tensorflowers 来源:cg 2019-01-05 09:04 次阅读

设置

importtensorflow astftf.enable_eager_execution()

梯度带

TensorFlow 提供用于自动微分的 tf.GradientTapeAPI - 计算与其输入变量相关的计算梯度。TensorFlow 通过tf.GradientTape“记录” 在上下文中执行的所有操作到 “磁带”(tape)上。然后,TensorFlow 使用该磁带和与每个记录操作相关联的梯度来计算使用反向模式微分的 “记录” 计算的梯度。

例如:

x = tf.ones((2, 2)) with tf.GradientTape() as t: t.watch(x) y = tf.reduce_sum(x) z = tf.multiply(y, y)# Derivative of z with respect to the original input tensor xdz_dx = t.gradient(z, x)for i in [0, 1]: for j in [0, 1]: assert dz_dx[i][j].numpy() == 8.0

您还可以根据在 “记录”tf.GradientTape 上下文时计算的中间值请求输出的梯度。

x = tf.ones((2, 2)) with tf.GradientTape() as t: t.watch(x) y = tf.reduce_sum(x) z = tf.multiply(y, y)# Use the tape to compute the derivative of z with respect to the# intermediate value y.dz_dy = t.gradient(z, y)assert dz_dy.numpy() == 8.0

默认情况下,GradientTape 持有的资源会在调用 GradientTape.gradient() 方法后立即释放。要在同一计算中计算多个梯度,创建一个持久的梯度带。这允许多次调用 gradient() 方法。当磁带对象 tape 被垃圾收集时释放资源。例如:

x = tf.constant(3.0)with tf.GradientTape(persistent=True) as t: t.watch(x) y = x * x z = y * ydz_dx = t.gradient(z, x) # 108.0 (4*x^3 at x = 3)dy_dx = t.gradient(y, x) # 6.0del t # Drop the reference to the tape

记录控制流

因为磁带(tape)在执行时记录操作,所以自然会处理 Python 控制流(例如使用 ifs 和 whiles):

def f(x, y): output = 1.0 for i in range(y): if i > 1 and i < 5:      output = tf.multiply(output, x)  return outputdef grad(x, y):  with tf.GradientTape() as t:    t.watch(x)    out = f(x, y)  return t.gradient(out, x) x = tf.convert_to_tensor(2.0)assert grad(x, 6).numpy() == 12.0assert grad(x, 5).numpy() == 12.0assert grad(x, 4).numpy() == 4.0

高阶梯度

GradientTape 记录上下文管理器内部的操作以实现自动区分。如果梯度是在这个上下文中计算的,那么梯度计算也会被记录下来。因此,同样的 API 也适用于高阶梯度。例如:

x = tf.Variable(1.0) # Create a Tensorflow variable initialized to 1.0with tf.GradientTape() as t: with tf.GradientTape() as t2: y = x * x * x # Compute the gradient inside the 't' context manager # which means the gradient computation is differentiable as well. dy_dx = t2.gradient(y, x)d2y_dx2 = t.gradient(dy_dx, x)assert dy_dx.numpy() == 3.0assert d2y_dx2.numpy() == 6.0

下一步

以上教程中,我们介绍了 TensorFlow 中的梯度计算。有了这些,我们就有了足够的基本要素来构建和训练神经网络

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8416

    浏览量

    132616
  • tensorflow
    +关注

    关注

    13

    文章

    329

    浏览量

    60532

原文标题:自动微分,优化机器学习模型的关键技术

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    汽车总线及其关键技术的研究

    汽车总线及其关键技术的研究
    发表于 07-10 11:33

    CDMA原理与关键技术

    CDMA原理与关键技术
    发表于 08-16 20:25

    物联网的关键技术有哪些

    物联网关键技术————传感器技术
    发表于 06-16 17:25

    智能通信终端有哪些关键技术

    智能通信终端有哪些关键技术
    发表于 05-26 07:04

    MIMO-OFDM中有哪些关键技术

    本文介绍了MIMO-OFDM技术中的关键技术,如信道估计、同步、分集技术和空时编码等。
    发表于 05-27 06:05

    POE的关键技术有哪些?

    使用以太网线供电的优势是什么?PoE设备是怎么供电的?POE的关键技术有哪些?
    发表于 06-10 09:26

    机器人实现智能的关键技术到底是什么?

    机器人实现智能的关键技术到底是什么?这些技术在最近十年会发展到什么程度?整个产业的应用前景将会如何?
    发表于 07-05 06:55

    明白VPP关键技术有哪些

    随着人工智能技术的不断发展,越来越多的行业开始使用人工智能技术,这也使得智能虚拟代理技术得到了广泛的应用。为了能够深入了解智能虚拟代理技术,需要明白VPP
    发表于 08-31 07:28

    面向OpenHarmony终端的密码安全关键技术

    终端-云端协同,实现当前国产体系密码技术合规应用、首创并优化非交互联邦学习、解决云-端整体安全技术难题,具备创新性、可行性。 欢迎大家加入到密码安全
    发表于 09-13 19:20

    视觉导航关键技术及应用

    由于视觉导航技术的应用越来越普及 ,因此 ,有必要对视觉导航中的关键技术及应用进行研究。文章对其中的图像处理技术和定位与跟踪技术进行了详细研究 ,并与此相对应 ,介绍的相关的应用。
    发表于 09-25 08:09

    工业机器人的关键技术及应用趋势

    工业机器人的关键技术及应用趋势
    发表于 02-07 18:25 17次下载

    机器学习模型切实可行的优化步骤

    这篇文章提供了可以采取的切实可行的步骤来识别和修复机器学习模型的训练、泛化和优化问题。
    的头像 发表于 05-04 12:08 2662次阅读

    关于生成式AI的关键技术

    生成式AI的关键技术是生成式对抗网络(GANs, Generative Adversarial Networks ),其本质是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方
    的头像 发表于 10-17 09:27 2365次阅读

    机器学习笔记之优化-拉格朗日乘子法和对偶分解

    优化机器学习中的关键步骤。在这个机器学习系列中,我们将简要介绍
    的头像 发表于 05-30 16:47 1900次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>笔记之<b class='flag-5'>优化</b>-拉格朗日乘子法和对偶分解

    LLM大模型推理加速的关键技术

    LLM(大型语言模型)大模型推理加速是当前人工智能领域的一个研究热点,旨在提高模型在处理复杂任务时的效率和响应速度。以下是对LLM大模型推理加速关键
    的头像 发表于 07-24 11:38 885次阅读