一.项目的内容
该项目旨在探究恋爱次数与(颜值,身高,财富,内涵)之间的关系,探究其各自的线性关系。
二.项目的实现
先生成500条原始的数据,再设计一个模型,任意确定一个w_0以及b_0,再设计一个损失函数loss,通过反向传播和梯度下降来对模型进行训练。通过训练的结果来调整学习率的大小。最终通过可视化来保存训练的结果,反映其各要素之间的线性关系。
三.代码的实现过程
1.引入python包
import torch
import matplotlib.pyplot as plt
import random #随机操作
2.创建一个生成数据的函数create_data
def create_data(w,b,data_num):
#这里生成的是一笔真实的数据,这里的数据不是调研得到的,而是通过函数自己生成的
x=torch.normal(0,1,(data_num,len(w))) #这里w的长为x的宽,data_num为x的长
y=torch.matmul(x,w)+b #matmul表示矩阵相乘
noise=torch.normal(0,0.01,y.shape)
#噪声要加到y上,其0.01表示方差,方差越小表示数越小,y.shape表示y的维度的大小
y +=noise
return x, y
num = 500
true_w=torch.tensor([8.1 , 2 , 2 , 4])
true_b=torch.tensor(1.1)
这里是通过true_w和true_b来生成原始的数据X,Y;这里的Y是通过确定的true_w*X+true_b加上noise来得到。
X,Y=create_data(true_w, t