Pytorch深度学习

X-xue / 2024-10-19 / 原文

线性模型
1.dataset 准备数据集
2.model 选择合适的模型 根据数据集的情况选择
3.training 训练
4.将模型里的权重确定下来 将来可应用 inferring推理

监督学习
kaggle网站
把拿到的数据集分为两部分 一部分叫training set 训练集(x,y) 另外一部分叫测试集
一般情况下我们是知道测试集的结果 但是需要通过训练的模型得到结果 作用是为了追求模型的准确率

y_hat=x*Ω(权重)
损失函数loss=(y_hat-y)的平方 找到一个权重将平均损失降到最低。均方误差MSE

穷举法
找Ω的是时候可以用到

点击查看代码
import numpy as np                    
import matplotlib.pyplot as plt       #绘图的包 numpy 和matplotlib
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]              #数据集保存(x,y)=(1,2)(2,4)(3,6)
#定义了一个函数forward
def forward(x):
  return x * w
#定义损失函数
def loss(x, y):          
  y_pred = forward(x)
  return (y_pred - y) * (y_pred - y)

w_list = []  #定义权重列表
mse_list = []#定义损失权重列表

for w in np.arange(0.0, 4.1, 0.1): #循环 从0.0到4.1 间隔为0.1
  print('w=', w)
  l_sum = 0
  for x_val, y_val in zip(x_data, y_data):   #将x_data,y_data 拿出来作为本次测试的数据
  y_pred_val = forward(x_val)    #计算y_hat
  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)        #损失的均值mse
w_list.append(w)
mse_list.append(l_sum / 3)