所有资料均来源于【李哥考研复试项目班课程】
四个维度真实的权重分别为8.1,2,2,4,偏置为1.1,求恋爱次数。
神经网络的目标:根据一个给出的随机的,求出真实的w和b
一、导入包
import torch
import matplotlib.pyplot as plt # 画图的
import random # 随机数
PyTorch库,提供张量计算和梯度计算的功能
matplotlib,画图,plt是 matplotlib.pyplot
的常用别名,方便在代码中调用其函数
random,生成随机数
二、数据生成
def create_data(w, b, data_num): # 生成数据
x = torch.normal(0, 1, (data_num, len(w)))
y = torch.matmul(x, w) + b # matmul矩阵相乘
noise = torch.normal(0, 0.01, y.shape) # 噪声加到y上
y += noise
return x, y
create_data函数,用于生成线性数据。
x:生成一个形状为 (data_num, len(w))
的矩阵,其中每个元素都是均值为0、标准差为1的正态分布随机数。(数据的个数是矩阵的长,维度的个数是矩阵的宽,即w的长度)
y:通过矩阵乘法 torch.matmul(x, w)
计算 x 和 w 的乘积,再加上偏置 b(
矩阵的每一行都加上b)
,生成线性关系的数据。
noise:生成与 y