Tensorflow2.0笔记:自动求梯度(导数)

对于给定函数:y(w)=aw^2+bw+c
数学求导得:dy/dw=2aw+b
那么,(a,b,c,w)=(1,2,3,4)处的导数,dy/dw=2 * 1 *4 + 2=10
而在Tensorflow2.0中,梯度可以自动求取。具体代码如下:

import tensorflow as tf

a=tf.constant(1.)
b=tf.constant(2.)
c=tf.constant(3.)
w=tf.constant(4.)

with tf.GradientTape() as tape:  # 构建梯度环境
    tape.watch([w])   # 对w求梯度,并跟踪列表
    y=a*w**2+b*w+c    # 构建目标函数
[dy_dw] = tape.gradient(y, [w])  # 函数y对w求导
print(dy_dw)  # 打印出导数


运行结果:
在这里插入图片描述

发布了45 篇原创文章 · 获赞 50 · 访问量 3527

猜你喜欢

转载自blog.csdn.net/wjinjie/article/details/104685737