pytorch笔记:绘制线性模型loss的3D图
参考资料:
pytorch课程:
https://www.bilibili.com/video/BV1Y7411d7Ys
课程笔记:
https://blog.youkuaiyun.com/bit452/category_10569531.html
第二讲课后作业:
https://blog.youkuaiyun.com/weixin_44841652/article/details/105017087
plot_surface()以及meshgrid()的详细解释:
https://blog.youkuaiyun.com/qq_43270444/article/details/124782745
https://blog.youkuaiyun.com/fat_cai_niao/article/details/100521555
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
W=np.arange(0,4.0,0.1)
B=np.arange(0,5.0,0.2)
print(W)
print(B)
w,b=np.meshgrid(W,B) #将W、B网格化,w和b是两个规格相同的矩阵(len(W),len(B))
print(b.shape)
def forw(x):
return w*x+b #w,b是矩阵,返回值为规格相同的矩阵
def loss(x,y):
yh=forw(x)
return (yh-y)**2 #返回值为规格相同的矩阵
lost=0
for x,y in zip(x_data,y_data): #x,y为两个列表相同位置的数
lost+=loss(x,y)
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(w, b, lost/3)
plt.show()
结果:
待解决问题:
怎么查看运行中产生的最小lost和对应的w、b