4.5 PyTorch批量梯度下降

本文介绍了PyTorch中批量梯度下降的使用,通过实例展示了如何创建数据批次,利用TensorDataset和dataloader进行高效迭代,并训练一个简单的线性模型。这一方法对于处理大规模数据集至关重要。
摘要由CSDN通过智能技术生成

欢迎订阅本专栏:《PyTorch深度学习实践》
订阅地址:https://blog.csdn.net/sinat_33761963/category_9720080.html

  • 第二章:认识Tensor的类型、创建、存储、api等,打好Tensor的基础,是进行PyTorch深度学习实践的重中之重的基础。
  • 第三章:学习PyTorch如何读入各种外部数据
  • 第四章:利用PyTorch从头到尾创建、训练、评估一个模型,理解与熟悉PyTorch实现模型的每个步骤,用到的模块与方法。
  • 第五章:学习如何利用PyTorch提供的3种方法去创建各种模型结构。
  • 第六章:利用PyTorch实现简单与经典的模型全过程:简单二分类、手写字体识别、词向量的实现、自编码器实现。
  • 第七章利用PyTorch实现复杂模型:翻译机(nlp领域)、生成对抗网络(GAN)、强化学习(RL)、风格迁移(cv领域)。
  • 第八章:PyTorch的其他高级用法:模型在不同框架之间的迁移、可视化、多个GPU并行计算。

在实际应用中,数据集往往是非常大的,如果每次迭代都对所有样本进行前向-后向计算从而更新依次参数,就会非常慢,因此常用的方式是将总样本分割为多批样本,每计算一批样本就更新一次参数。PyTorch提供了每次产生一批数据的迭代器,提升了效率。

来看看具体做法,先创建一批数据x,y

import torch

# 创建了50个样本
x = torch.unsqueeze(torch.linspace(1,10,50), dim=1)
y = x.pow(2)

将数据转换为TensorDataset

dataset = Data.TensorDataset(x, y)

将TensorDataset转换成dataloader,设置参数batch_size,dataloader是一个迭代器,它会每次都吐出batch_size个样本

dataloader = Data.DataLoader(dataset=dataset, batch_size=10)
print(dataloader)

for inp, out in dataloader:
    print(inp.shape)
    print</
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值