一、生成数据集
1、生成一个包含1000个样本的数据集,每个样本包含从标准正态分布中采样的2个特征。所以生成的样本集合就是一个1000*2的矩阵。使用线性模型参数w=[2,−3.4]⊤、b=4.2和噪声项ϵ生成数据集及其标签。
2、可以将ϵ视为捕获特征和标签的潜在观测误差
%matplotlib inline
#matplotlib包用于作图,且设置成嵌入显示
import random #因为要随机梯度下降和初始化权重
import torch
from d2l import torch as d2l
#人造数据集:就是知道W与b
#生成数据集
def synthetic_data(w, b, num_examples): #@save num_example为样本个数
"""生成 y = Xw + b + 噪声。"""
# normal:返回一个张量,包含了从指定均值means和标准差std的离散正态分布中抽取的一组随机数
X = torch.normal(0, 1, (num_examples, len(w))) #均值为0,方差为1
# matmul:矩阵乘法
y = torch.matmul(X, w) + b
# 生成噪音
y += torch.normal(0, 0.01, y.shape) #增加复杂度噪音,均值为0,方差为0.01,形状和Y相同
return