pytorch线性回归简洁实现总结

1.from torch.utils import data:data里有部分数据读取工具。

这里用到的-1.Tensordataset:类似于一个1打包函数:TensorDataset 可以用来对 tensor 进行打包,包装成dataset(类似zip)。就好像 python 中的 zip 功能。该类通过每一个 tensor 的第一个维度进行索引。因此,该类中的 tensor 第一维度必须相等. 另外:TensorDataset 中的参数必须是 tensor
(行数相同,类型为tensor){对于元组我们可以用*x的方式进行解包}

2.data_iter=torch.utils.data.DataLoader(dataset, batch_size=1, 
                            shuffle=False, sampler=None, 
                            batch_sampler=None, num_workers=0, 
                            collate_fn=None, pin_memory=False, 
                            drop_last=False, timeout=0, 
                            worker_init_fn=None, 
                            multiprocessing_context=None)
用于读取dataset,类似于pd.read类型的1.batch_size指的一次取的批量大小,2.shuffle=False, sampler=None,指的是否打乱以及不打乱用什么方式取得,3.取得批量超额是否舍弃最后一批,4.timeout=0,超额截断。返回值是一个元组,中间装有多个(X,y)小元组。

3.from torch import nn:装有神经网络辅助函数

4.nn.Sequential(),把括号里的层都连起来,成一个大网

5.nn.Linear(2, 1),打造一个线性层(无激活函数),且(2,1)分别指输入输出特征,即w为(2,1),相当于上一层是两个节点,这一次一个节点

6..weight.data,.bias.data,可以调用对应的w和b。eg:

-1:net = nn.Sequential(nn.Linear(2, 1)):定义了一个连接网络,里面只有一层linear

-2:进行对net网络第一层(linear)的调用

net[0].weight.data.normal_(0, 0.01):用平均值为0,方差为1的随机数填满
net[0].bias.data.fill_(0):全部替换填充为0

7.l2范数

nn.MSELoss()

8.通过这个调用优化更新方法,比如sgd

torch.optim

9.正式优化:标准循环批次

for epoch in range(num_epochs):
    for X, y in data_iter:(data_iter为包含了多个元组的大元组)
        l = loss(net(X) ,y)
        trainer.zero_grad():对优化器梯度清零,谁使用对谁清零
        l.backward()
        trainer.step():进行一次优化
    l = loss(net(features), labels)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值