B站刘二大人《PyTorch深度学习实践》第二讲 线性模型 课后作业代码实现
线性模型y = w*x + b
绘制三维立体图形
代码如下:
import numpy as np #导入绘制图像的两个包
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D #导入绘制3D图所需的包
x_data = [1.0,2.0,3.0] #创建人工的数据集
y_data = [5.0,8.0,11.0]
def forward(x): #定义前馈函数,y = x * w
return x * w + b
def loss(x,y): #定义损失函数 loss=(y_pred-y)**2
y_pred = forward(x)
return (y_pred-y) ** 2
mse_list = [] #创建空列表,用来传送损失值
W = np.arange(0.0,4.1,0.1) #建立想x,y轴
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)
print(y_pred_val)
loss_val = loss(x_val,y_val)
l_sum += loss_val #损失求和
fig = plt.figure()
axes3d = Axes3D(fig)
axes3d.plot_surface(w,b,l_sum/3)
plt.show()
运行结果如下: