Dataloader是 torch 给我们用来包装数据的工具。所以我们要将自己的 (ndarray或其他) 数据形式装换成 Tensor, 然后再放进Dataloader这个包装器中。 使用Dataloader有什么好处呢? 就是它可以帮我们有效地迭代数据。

1 准备部分

1.1 导入库

import torch
import torch.utils.data as Data

1.2 数据集部分

x=torch.linspace(1,10,10)
y=torch.linspace(-10,-1,10)
print(x,'\n',y)
'''
tensor([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
tensor([-10.,  -9.,  -8.,  -7.,  -6.,  -5.,  -4.,  -3.,  -2.,  -1.])
'''
BATCH_SIZE=5

2 方法1 TensorDataset+DataLoader

torch_dataset=Data.TensorDataset(x,y)
#先转化成pytorch可以识别的Dataset格式loader=Data.DataLoader(dataset=torch_dataset,batch_size=BATCH_SIZE,shuffle=True)
#把dataset导入dataloader,并设置batch_size和shufflefor epoch in range(3):for step,(batch_x,batch_y) in enumerate(loader):print('epoch: ',epoch)print('step: ',step,'\n x: ',batch_x,'\n y: ',batch_y)print('*'*30)'''
epoch:  0
step:  0 x:  tensor([9., 2., 6., 5., 3.]) y:  tensor([-2., -9., -5., -6., -8.])
******************************
epoch:  0
step:  1 x:  tensor([10.,  1.,  7.,  4.,  8.]) y:  tensor([ -1., -10.,  -4.,  -7.,  -3.])
******************************
epoch:  1
step:  0 x:  tensor([ 3.,  5.,  2., 10.,  4.]) y:  tensor([-8., -6., -9., -1., -7.])
******************************
epoch:  1
step:  1 x:  tensor([7., 6., 8., 1., 9.]) y:  tensor([ -4.,  -5.,  -3., -10.,  -2.])
******************************
epoch:  2
step:  0 x:  tensor([10.,  3.,  1.,  8.,  9.]) y:  tensor([ -1.,  -8., -10.,  -3.,  -2.])
******************************
epoch:  2
step:  1 x:  tensor([5., 7., 2., 6., 4.]) y:  tensor([-6., -4., -9., -5., -7.])
******************************
'''

3 方法2 自定义类+DataLoader

class MyDataSet(Data.Dataset):def __init__(self,x,y):super(MyDataSet,self).__init__()self.x=xself.y=ydef __len__(self):return self.x.shape[0]#有几组数据def __getitem__(self,idx):return(self.x[idx],self.y[idx])#根据索引找到数据loader2=Data.DataLoader(MyDataSet(x,y),batch_size=BATCH_SIZE,shuffle=True)for epoch in range(3):for step,(batch_x,batch_y) in enumerate(loader2):print('epoch: ',epoch)print('step: ',step,'\n x: ',batch_x,'\n y: ',batch_y)print('*'*30)'''
epoch:  0
step:  0 x:  tensor([9., 7., 2., 6., 3.]) y:  tensor([-2., -4., -9., -5., -8.])
******************************
<class 'torch.Tensor'>
epoch:  0
step:  1 x:  tensor([ 5.,  4.,  8., 10.,  1.]) y:  tensor([ -6.,  -7.,  -3.,  -1., -10.])
******************************
<class 'torch.Tensor'>
epoch:  1
step:  0 x:  tensor([ 6.,  3.,  5., 10.,  9.]) y:  tensor([-5., -8., -6., -1., -2.])
******************************
<class 'torch.Tensor'>
epoch:  1
step:  1 x:  tensor([4., 7., 1., 8., 2.]) y:  tensor([ -7.,  -4., -10.,  -3.,  -9.])
******************************
<class 'torch.Tensor'>
epoch:  2
step:  0 x:  tensor([ 6.,  1., 10.,  3.,  4.]) y:  tensor([ -5., -10.,  -1.,  -8.,  -7.])
******************************
<class 'torch.Tensor'>
epoch:  2
step:  1 x:  tensor([2., 9., 7., 5., 8.]) y:  tensor([-9., -2., -4., -6., -3.])
******************************
'''

pytorch笔记:Dataloader相关推荐

  1. pytorch 笔记:DataLoader 扩展:构造图片DataLoader

    数据来源:OneDrive for Business 涉及内容:pytorch笔记:Dataloader_UQI-LIUWJ的博客-CSDN博客 torchvision 笔记:ToTensor()_U ...

  2. torch的拼接函数_从零开始深度学习Pytorch笔记(13)—— torch.optim

    前文传送门: 从零开始深度学习Pytorch笔记(1)--安装Pytorch 从零开始深度学习Pytorch笔记(2)--张量的创建(上) 从零开始深度学习Pytorch笔记(3)--张量的创建(下) ...

  3. Pytorch笔记:风格迁移

    Pytorch笔记:风格迁移 训练模型:风格迁移网络+VGG16网络 生成网络:风格迁移网络 代码如下(根据陈云<深度学习框架:Pytorch入门与实践>的代码改动) main.py im ...

  4. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(4)线性神经网络(暂停)

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  5. 【 数据集加载 DatasetDataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10)】

    数据集加载 Dataset&DataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10) 模块介绍 在本节中没有关于数学原理的相关介绍,使用的数据集和类型 ...

  6. 【分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人(8/10)】

    分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人 (8/10) 在进行本章的数学推导前,有必要先粗浅的介绍一下,笔者在广泛查找 ...

  7. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  8. PYTORCH 笔记 DILATE 代码解读

    dilate 完整代码路径:vincent-leguen/DILATE: Code for our NeurIPS 2019 paper "Shape and Time Distortion ...

  9. 深度学习PyTorch笔记(12):线性神经网络——softmax回归

    深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...

  10. Pytorch之DataLoader Dataset、datasets、models、transforms的认识和学习

    文章目录 利用PyTorch框架来开发深度学习算法时几个基础的模块 Dataset & DataLoader 基础概念 自定义数据集 1 读取自定义数据集 1 自定义数据集 2 自定义数据集3 ...

最新文章

  1. pyinstaller 安装使用方法
  2. 数据结构源码笔记(C语言):链接队列
  3. idea console中文乱码_Python3的字符编码乱码问题解决思路
  4. Git 修改分支的名称(亲测)
  5. Asp.Net就业课之三验证控件
  6. Centos7 CMake升级
  7. nutshell_Nutshell中的Java 8语言功能-第1部分
  8. java中finalizer终结方法学习心得
  9. 人智化转型 华为云微认证带你实力进阶
  10. python字符串_(Python基础教程之七)Python字符串操作
  11. 数论 (大数,小费马定理,欧拉定理,威尔逊定理,快速数论变换(NNT)模版)...
  12. 使用SQL语句的子查询批量复制表数据
  13. 使用WebDeployment Project改善VS2005发布网站
  14. [Delphi]用程序更改 IE 的代理服务器(Proxy)设置及本地连接
  15. 慎用JSON.stringify
  16. 【高等教育6年+工作5年】的个人阶段性自述
  17. 远程访问双层嵌套Openstack云下的Windows虚机(by quqi99)
  18. try(){}的简单理解
  19. 如何安装OpenCVE
  20. 2014 IT互联网公司校招应届生待遇大全

热门文章

  1. Redis适用于高并发的递增、递减功能
  2. Virtual ListView效率对比
  3. SerialPort.DataReceived 事件
  4. 新版Edge浏览器弹出“ 禁用开发人员模式扩展 ”的解决方案
  5. 动态规划习题,关系式推导和求模技巧
  6. Spring第一讲:初步了解Spring
  7. Linux文件系统中文版,Linux 文件系统-Go语言中文社区
  8. php yaf框架模块化,基于yaf的模块化开发方案
  9. 可编程led灯带原理_88张图搞定层板灯带的设计、安装、收口及检修!
  10. socket函数介绍