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

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

相关推荐
月下倩影时2 分钟前
ROS1基础入门:从零搭建机器人通信系统(Python/C++)
c++·python·机器人
Danceful_YJ12 分钟前
36.优化方法
人工智能·pytorch·python·深度学习·优化器算法
C1161113 分钟前
Jupyter中选择不同的python 虚拟环境
开发语言·人工智能·python
golang学习记14 分钟前
TRAE AI 真强,连外国人都在用这些AI技巧
人工智能
天下不喵15 分钟前
Ubuntu24.02安装python库以及部署python项目
python
化作星辰16 分钟前
深度学习_神经网络_损失函数基础
人工智能·深度学习·神经网络
残雪飞扬18 分钟前
Pycharm社区版安装
ide·python·pycharm
oak隔壁找我20 分钟前
Spring AI 实现MCP简单案例
java·人工智能·后端
星光一影22 分钟前
SpringBoot+Vue3无人机AI巡检系统
人工智能·spring boot·websocket·mysql·intellij-idea·mybatis·无人机