Tensorflow(二十二) —— 函数优化

本文通过Tensorflow实现了一个二维函数的优化过程,利用梯度下降法更新参数,逐步逼近函数最小值。同时,使用matplotlib进行3D可视化,展示优化路径和函数表面。这是深度学习与TensorFlow2入门课程的学习笔记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tensorflow(二十二) —— 函数优化

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt 
from matplotlib import cm
def my_func(x):
    return (x[0]**2 + x[1]-11)**2 + (x[0] + x[1]**2 - 7)**2

x = np.linspace(-6,6,500)
y = np.linspace(-6,6,500)
X,Y = np.meshgrid(x,y)
Z = my_func([X,Y])

fig = plt.figure(figsize=[20,12],dpi = 72)
ax = fig.add_subplot(111,projection = "3d")
ax.plot_surface(X,Y,Z,cmap = cm.autumn_r)

ax.set_xlabel("x",size = 50)
ax.set_ylabel("y",size = 50)

在这里插入图片描述

x = tf.constant([4.,4.])
record_x = []
record_y = []
for step in range(100):
    record_x.append(x[0])
    record_y.append(x[1])
    with tf.GradientTape() as tape:
        tape.watch([x])
        y = my_func(x)
    grads = tape.gradient(y,[x])[0]
    x -= 0.01*grads
route = [np.array(record_x),np.array(record_y)]
route_z = my_func(route)
fig = plt.figure(figsize=[20,12],dpi = 72)
ax = fig.add_subplot(111,projection = "3d")
ax.plot_surface(X,Y,Z)
ax.plot(route[0],route[1],route_z,marker = "*",color="r")

在这里插入图片描述

本文为参考龙龙老师的“深度学习与TensorFlow 2入门实战“课程书写的学习笔记

by CyrusMay 2022 04 17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值