梯度下降法_一维图像和二维图像

本文深入探讨了梯度下降法在一维和二维图像中的应用,详细解释了如何利用该方法进行优化求解,并提供了相关实例分析。
摘要由CSDN通过智能技术生成
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import math
from mpl_toolkits.mplot3d import Axes3D

# 设置在jupyter中matplotlib的显示情况(表示不是嵌入显示)
%matplotlib tk
# 解决中文显示问题
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False

#一维原始图像
def f1(x):
    return 0.5 * (x - 0.25) ** 2

#构建数据
X = np.arange(-4,4.55,0.05)
Y = np.array(list(map(lambda x: f1(x),X)))  #X[0],X[1],X[2]

#画图
plt.figure(facecolor='w')  #也是原地操作,操作结果返回给原有画笔plt
plt.plot(X,Y,'r-',linewidth=2)
plt.title(u'函数$y=0.5 * (x - 0.25)^2$') #原地操作,画笔画的保存在原画笔对象
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

# 二维原始图像
def f2(x,y):  # f2 => z = 0.6 * (x + y) ** 2 - x * y
    return 0.6 * (x + y) ** 2 - x * y


#构建数据
X = np.arange(-4,4.5,0.2)
Y = np.arange(-4,4.5,0.2)
X, Y = np.meshgrid(X,Y)   #从坐标向量返回坐标矩阵
X1 = X.flatten()
Y1 = Y.flatten()
Z = np.array(list(map(lambda t:f2(t[0],t[1]),zip(X1,Y1))))
Z.shape = X.shape

#画图
fig = plt.figure(facecolor="w")  ##fig是画笔绘出的一个颜色为白色的画板
ax = Axes3D(fig)   #将画板转化为一个Axes3D的画板对象

# rstride:行之间的跨度row_stride  cstride:列之间的跨度column_cstride
# rcount:设置间隔个数,默认50个,ccount:列的间隔个数  不能与上面两个参数同时出现
# cmap是颜色映射表
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.cm.jet)
ax.set_title(u'函数$y=0.6 * (θ1 + θ2)^2 - θ1 * θ2$')
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值