TensorFlow2.x 学习笔记(六)随机梯度下降以及数据可视化

这篇博客介绍了在TensorFlow2.x中如何使用梯度下降进行优化,包括梯度的概念、GradientTape的使用、二阶导数,以及激活函数如Sigmoid、ReLU的梯度。同时,博主分享了如何利用TensorBoard进行损失函数和激活函数的可视化,包括scalar和image的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降

简介

梯度

梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值。
g r a d f ( x , y ) = ∇ f ( x , y ) = ( ∂ f ∂ x , ∂ f ∂ y ) = ∂ f ∂ x i + ∂ f ∂ x j gradf(x,y) = \nabla{f(x,y)} = (\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}) = \frac{\partial f}{\partial x}i + \frac{\partial f}{\partial x}j gradf(x,y)=f(x,y)=(xf,yf)=xfi+xfj

利用梯度优化

梯度方向是函数增长最快的方向,因此搜索函数最小值的过程就是不断向负梯度方向移动的过程
θ t + 1 = θ t − α t ∇ f ( θ t ) \theta_{t+1}= \theta_t - \alpha_t\nabla{f(\theta_t)} θt+1=θtαtf(θt)

AutoGrad with Tensorflow

GradientTape

  • with tf.GradientTape() as tape:
    • Build computation graph
    • l o s s = f θ ( x ) loss = f_\theta(x) loss=fθ(x)
  • [w_grad] = tape.gradient(loss,[w])
w = tf.constant(1.)
b = tf.constant(2.)
x = tf.constant(3.)
y = w*x

with tf.GradientTape() as tape:
    tape.watch([w])
    y2 = w * x
grad1 = tape.gradient(y, [w])
print(grad1)#[None]
grad2 = tape.gradient(y2, [w])#non-persistent error
with tf.GradientTape() as tape:
    tape.watch([w])
    y2 = w * x
grad2 = tape.gradient(y2, [w])
print(grad2)#2

Persistent GradientTape

non-persistent 只能调用一次,用完就会释放显存,可以开启persistent选项来解决这个问题,用完以后记得手动释放

with tf.GradientTape(persistent=True) as tape:
    tape.watch([w])
    y = w * x
grad1 = tape.gradient(y, [w])
print(grad1)
grad1 = tape.gradient(y, [w])
print(grad1)
del tape
grad1 = tape.gradient(y, [w])
print(grad1)

2 n d − o r d e r 2^{nd}-order 2ndorde

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值