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()

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

相关推荐
2601_9619633823 分钟前
技术解剖:哈希值、区块链与CA认证如何守护电子合同安全?
网络·人工智能·安全·区块链·智能合约·政务
2601_9619633824 分钟前
从“电子化”到“自动化”:2026年智能合约与电子合同融合的技术逻辑与法律适配
网络·人工智能·区块链·智能合约·政务
2601_9563198825 分钟前
期货夜盘无人值守监控什么:断线、无成交与拒单信号
python·区块链
CTA终结者25 分钟前
期货量化目标仓和净持仓对不齐:天勤 TargetPosTask 与 pos 偏差排查
python·区块链
米小虾35 分钟前
AI Skills 工程化:当每个开发者都有一支「AI 小队」,你该怎么管理?
人工智能
DisonTangor1 小时前
谷歌开源首个扩散大语言模型——DiffusionGemma
人工智能·语言模型·自然语言处理·开源·aigc·transformer
科技林总1 小时前
解决vllm服务漏扫问题
python·安全
冬奇Lab1 小时前
每日一个开源项目(第129篇):OpenMed - 永不离开设备的医疗 NLP
人工智能·开源·资讯
冬奇Lab1 小时前
Agent 系列(19):Harness 完整体系——8 层防护框架全景
人工智能·llm·agent
米小虾1 小时前
Claude Fable 5 系统提示词被扒出来了:1586 行代码背后,藏着 AI 产品工程的终极哲学
人工智能·agent