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

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

相关推荐
shuououo28 分钟前
YOLOv4 核心内容笔记
人工智能·计算机视觉·目标跟踪
DO_Community4 小时前
普通服务器都能跑:深入了解 Qwen3-Next-80B-A3B-Instruct
人工智能·开源·llm·大语言模型·qwen
WWZZ20254 小时前
快速上手大模型:机器学习3(多元线性回归及梯度、向量化、正规方程)
人工智能·算法·机器学习·机器人·slam·具身感知
deephub4 小时前
深入BERT内核:用数学解密掩码语言模型的工作原理
人工智能·深度学习·语言模型·bert·transformer
PKNLP4 小时前
BERT系列模型
人工智能·深度学习·bert
应用市场5 小时前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
兰亭妙微5 小时前
ui设计公司审美积累 | 金融人工智能与用户体验 用户界面仪表盘设计
人工智能·金融·ux
东方佑5 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
AKAMAI6 小时前
安全风暴的绝地反击 :从告警地狱到智能防护
运维·人工智能·云计算
岁月宁静6 小时前
深度定制:在 Vue 3.5 应用中集成流式 AI 写作助手的实践
前端·vue.js·人工智能