零基础-动手学深度学习-3.2-3线性回归的代码实现9

零基础生医转码,道行浅薄请见谅~

首先我们要用random,torch库,matplot画一下函数:

import matplotlib.pyplot as plt
#原文中%matplotlib inline 是jupyter notebook的魔法命令
import random
import torch
from d2l import torch as d2l

一、生成数据集

#定义生成噪声数据函数
def synthetic_data(w,b,num_examples):
    """生成y=Xw+b+噪声"""
    X = torch.normal(0, 1, (num_examples, len(w)))
    y = torch.matmul(X, w) + b
    y += torch.normal(0, 0.01, y.shape)#添加噪声
    return X, y.reshape((-1, 1))
    #reshape确保 y 的形状是 (num_examples, 1),使标签是一个独立的列,保持一致的维度结构。
    #同时注意这里的-1是自动监测其维度大小的意义,但在鱼书里面说这个-1还起到了自动计算维度大小的作用

#生成数据集
true_w = torch.tensor([2, -3.4])
true_b = 4.2
features, labels = synthetic_data(true_w, true_b, 1000)#生成特征和标签值

#下面就是看看自己的数据集玩玩,可以不用管
print('features:', features[0],'\nlabel:',labels[0])#打印一组数据康康
d2l.set_figsize()
d2l.plt.scatter(features[:,1].detach().numpy(), labels.detach().numpy(),1);
#scatter绘制散点图
# .detach() 是 PyTorch 中用于分离张量的梯度计算。
#由于张量可能参与过某些计算图,使用 .detach() 来确保它不再参与梯度更新。
#但是李沐老师说这个detach是因为有些torch的版本需要把数据tach出来才能转到numpy中去
#.numpy() 是将 PyTorch 张量转换为 NumPy 数组。
plt.show()

二、读取数据集

你可能感兴趣的:(深度学习,线性回归,人工智能)