0.1 tensorflow例1-梯度下降法

例1:求函数y= (x^2-9)^2的极值位置,即求其导数为0的值y'=4*x*(x^2-9)。

定义loss = y'^2. 其极值位置在x轴-3,0,3位置。

代码如下,效果良好,从5开始可以找到3的极值位置。从-5开始可以-3的极值位置;从0.5开始找到极值点0的位置。

python 复制代码
import numpy as np
import tensorflow as tf
from matplotlib import pyplot as plt
#'求 y= (x^2-9)^2  的最小值'
#'即求梯度:y'=4*x*(x^2-9)=0的位置

x = tf.Variable(tf.constant(-5,dtype=tf.float32))
lr=0.01
epoch = 1000
for step in range(epoch):
    with tf.GradientTape() as tape:
        loss = tf.square( 4*x*(x*x-9))
    grads = tape.gradient(loss,x)
    x.assign_sub(lr*grads/np.abs(grads))
    print("After %s epoch, x is %.2f, loss is %.2f" %(step,x.numpy(),loss))

xRange = tf.range(-5,5,0.1)
x1=[]
y1=[]
y2=[]
for xpos in xRange:
    x1.append(xpos)
    y1.append( np.square (xpos*xpos - 9))
    y2.append( 4*xpos*(xpos*xpos - 9)       )
plt.plot(x1,y1,'-',x1,y2,'+')
plt.axhline()
plt.axvline()
plt.show()

下图打印了函数以及其导数的图片

相关推荐
Old Uncle Tom3 分钟前
LLM 替代 SAST?Claude Code 安全审查工具的设计取舍与工程启示
人工智能·安全·软件工程
工具派11 分钟前
PDF签名贴上去为什么发虚?尺寸、DPI与坐标的边界实测
java·python·pdf
叁两14 分钟前
别再手动刷行业信息了,你可能需要一个"行业研究员"
人工智能
2601_9654490818 分钟前
AI视频制作:做系列历史地图视频想固定音色,AI 音色克隆的流程实测
人工智能·音视频
谙忆23 分钟前
PNG改成ICO为什么不能用:用Python检查多尺寸目录与256px帧
开发语言·python
长空任鸟飞_阿康26 分钟前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·ai·架构·skills
滴啦嘟啦哒29 分钟前
【具身笔记】【原理探究】一、对PI05源码的实践笔记
笔记·python·vla·具身
2601_9620710032 分钟前
从OpenRouter到Crazyrouter:Claude Code三处改动
人工智能·ai
miofly37 分钟前
GitHub 今日推荐|elephant-goldfish-model:先审查设计草案再写代码
python·开源·github
阿里云大数据AI技术37 分钟前
云栖实录|从代码上下文到千亿级文档:Qoder × 阿里云 Elasticsearch 落地生产级Agent向量检索
人工智能·elasticsearch