TensorFlow学习(四):梯度带(GradientTape),优化器(Optimizer)和损失函数(losses)

更新时间:

  • 2017.5.9 简化了很多不需要的内容,关注重点。
  • 2019.4.17 更新到tensorflow 2.x,添加自动求导和新版本的optimizer

因为tensorflow 2.x相对于tensorflow 1.x的变动,API变更和思路也变化了,这节重点介绍的为梯度带(GradientTape)和优化器(Optimizer)
因为大多数机器学习任务就是最小化损失,在损失定义的情况下,后面的工作就交给优化器啦。因为深度学习常见的是对于梯度的优化,也就是说,优化器最后其实就是各种对于梯度下降算法的优化。

一.梯度带tf.GradientTape

梯度带是新版本tensorflow非常常用的一个特性了,因为一旦涉及到计算梯度的问题就离不开这个新的API,下面通过几个例子来介绍一下这个API。首先说明,下面的几个例子比较偏底层一点,需要非常少量和简单的一元和多元微分的知识。
例一:一元和二元求导

import tensorflow as tf

def gradient_test():
    #-------------------一元梯度案例---------------------------
    print("一元梯度")
    x=tf.constant(value=3.0)
    with tf.GradientTape(persistent=True,watch_accessed_variables=True) as tape:
        tape.watch(x)
        y1=2*x
        y2=x*x+2
        y3=x*x+2*x
    #一阶导数
    dy1_dx=tape.gradient(target=y1,sources=x)
    dy2_dx = tape.gradient(target=y2, sources=x)
    dy3_dx = tape.gradient(target=y3, sources=x)
    print("dy1_dx:"
  • 81
    点赞
  • 384
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值