import torch
import matplotlib.pyplot as plt # 画图
import random # 随机
# 设置Matplotlib的交互式后端以避免警告
plt.switch_backend('TkAgg')
import torch
: 导入PyTorch库,用于张量运算和深度学习模型构建。import matplotlib.pyplot as plt
: 导入Matplotlib库中的pyplot模块,用于绘制图表。import random
: 导入Python的标准random库,用于生成随机数。plt.switch_backend('TkAgg')
: 设置Matplotlib的交互式后端为TkAgg
,以避免某些版本的Matplotlib发出的警告。
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
def create_data(w, b, data_num)
: 定义一个名为create_data
的函数,用于生成数据。参数包括权重w
、偏置b
和数据数量data_num
。x = torch.normal(0, 1, (data_num,len(w)))
: 生成一个均值为0,标准差为1的正态分布张量x
,其形状为(data_num, len(w))
。y = torch.matmul(x, w)+b
: 计算y
,其中torch.matmul(x, w)
表示矩阵乘法,然后加上偏置b
。noise = torch.normal(0, 0.01, y.shape)
: 生成与y
形状相同的噪声张量noise
,均值为0,标准差为0.01。y += noise
: 将噪声加到y
上。return x,y
: 返回生成的特征x
和目标值y
。
num = 500
true_w = torc