# --------穷举法----------
import numpy as np
import matplotlib.pyplot as plt
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
# 线性模型,w为权重
def forward(x):
return x * w
# mse:平均平方误差
def loss(x, y):
y_pred = forward(x)
return (y_pred - y) * (y_pred - y)
# 用来存x轴的值
w_list = []
# 用来存y轴的值
mse_list = []
for w in np.arange(0.0, 4.1, 0.2): # 从0~4,每次加0.2,类似range
print('w=', w)
loss_sum = 0
# zip(x_data,y_data)-->(1.0,2.0)、(2.0,4.0)、(3.0,6.0)-->1.0 2.0 2.0 4.0 3.0 6.0
for x_val, y_val in zip(x_data, y_data):
# y的预测值
y_pred_val = forward(x_val)
# 损失值
loss_val = loss(x_val, y_val)
# 损失值的和
loss_sum = loss_sum + loss_val
print('\t', x_val, y_val, y_pred_val, loss_val)
print('mse=', f'{loss_sum / len(x_data):.2f}')
w_list.append(w)
mse_list.append(loss_sum / len(x_data))
# plot()函数是用于画图的,表示x轴为w_list,y轴为mse_list
plt.plot(w_list, mse_list)
# 表示Y轴标签为Loss
plt.ylabel('Loss')
# 表示x轴标签为w
plt.xlabel('w')
# 展示这个图形
plt.show()
Pytorch深度学习----线性模型
于 2024-08-02 23:59:57 首次发布