LineModel的习题
此习题是b站刘二大人的课后作业
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #引入3D块用于作图
x_data=[1.0,2.0,3.0]
y_data=[3.0,5.0,7.0]
def forward(x):
return x*w+b
def loss(x,y):
y_pred=forward(x)
return pow((y_pred-y),2)
w_list=[]
mse_list=[]
W_range=np.arange(0.0,4.1,0.1)
B_range=np.arange(0.0,4.1,0.1)
for w,b in zip(W_range,B_range):
print('w=', w)
print('b=', b)
l_sum = 0
for x_val, y_val in zip(x_data, y_data):
y_pred_val = forward(x_val)
loss_val = loss(x_val, y_val)
l_sum += loss_val
print('\t', x_val, y_val, y_pred_val, loss_val)
print('MSE=', l_sum / 3)
w_list.append(w)
mse_list.append(l_sum / 3)
[W,B]=np.meshgrid(W_range,B_range)
fig=plt.figure()
ax=Axes3D(fig)
ax.plot(W,B,mse_list)
plt.show()