3-6 构建线性模型解决温度计示数转换问题
直接上源码
%matplotlib inline
import numpy as np
import torch
torch.set_printoptions(edgeitems=2, linewidth=75)
导入必要的库并设置 PyTorch 的打印选项,确保在打印张量时显示边缘项和行宽。
#%%
t_c = [0.5, 14.0, 15.0, 28.0, 11.0, 8.0, 3.0, -4.0, 6.0, 13.0, 21.0]
t_u = [35.7, 55.9, 58.2, 81.9, 56.3, 48.9, 33.9, 21.8, 48.4, 60.4, 68.4]
定义摄氏温度(t_c
)和未知单位的温度(t_u
)的列表。
#%%
t_c = torch.tensor(t_c)
t_u = torch.tensor(t_u)
将温度列表转换为 PyTorch 张量。
#%%
import matplotlib.pyplot as plt
导入 Matplotlib 库,用于数据可视化。
#%%
fig = plt.figure()
plt.scatter(t_u, t_c, c='b', edgecolors='r')
plt.show()
创建一个散点图,将 t_u
和 t_c
进行可视化。蓝色点表示数据点,红色边缘表示边框颜色。
#%%
def model(t_u, w, b):return w * t_u + b
定义线性模型函数,模型参数为权重 w
和偏置 b
,输入为 t_u
。
#%%
def loss_fn(t_p, t_c):squared_diffs = (t_p - t_c)**2return squared_diffs.mean()
定义损失函数,计算预测值 t_p
和真实值 t_c
之间的均方误差。
#%%
w = torch.ones(())
b = torch.zeros(())
t_p = model(t_u, w, b)
t_p
初始化模型参数 w
为 1,b
为 0,计算预测值 t_p
。
#%%
loss = loss_fn(t_p, t_c)
loss
计算预测值 t_p
和真实值 t_c
之间的损失(均方误差)。
#%%
w = torch.zeros(())
b = torch.zeros(())
t_p = model(t_u, w, b)
t_p
重新初始化模型参数 w
和 b
都为 0,再次计算预测值 t_p
。
#%%
loss = loss_fn(t_p, t_c)
loss
计算新的预测值 t_p
和真实值 t_c
之间的损失(均方误差)。
这个代码的主要目的是定义一个线性回归模型,并通过不同的模型参数来计算预测值和损失,以了解模型预测效果的好坏。