记录一下最近跟进的刘二pytorch的网课,以及课后作业,作为深度学习的新手,写的很拉,纯记录学习用,欢迎提出意见。
HW
part2.线性模型linear model
code 代码部分
使用y = x*w+b的模型,创建一个3D图,使用material库和np.meshird()函数
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]
#定义y^模型
def forward(x):
return x*w+b
#定义loss函数
def loss(x,y):
y_pred = forward(x)
return (y_pred - y) * (y_pred - y)
#保存权重
mse_list = []
W=np.arange(0.0,4.1,0.1)
B=np.arange(0.0,4.1,0.1)
[w,b]=np.meshgrid(W,B)
l_sum = 0
for x_val,y_val in zip(x_data,y_data):
#计算预测值,可有可无
y_pred_val = forward(x_val)
#计算loss
loss_val = loss(x_val,y_val)
l_sum+=loss_val
print('\t',x_val,y_val,y_pred_val,loss_val)
#输出3D图
fig = plt.figure()
ax = fig.add_axes(Axes3D(fig))
ax.plot_surface(w,b,l_sum/3)
plt.show()
输出结果:
Problems encountered 遇到的问题
在matplotlib的最新版本中,ax=Axes3D(fig)函数不再适用,需要使用ax = fig.add_axes(Axes3D(fig))才能正确输出3D图像,不然会弹出一块白板。