关于迭代器等概念参考:https://www.cnblogs.com/zf-blog/p/10613533.html

关于pytorch中的DataLoader类参考:https://blog.csdn.net/u014380165/article/details/79058479(写的蛮好)

现在用一个例子来讲解一下:

(1)法一:

a = torch.utils.data.DataLoader(....)

a = enumerate(a) #enumerate的built-in函数:__iter__()会将a变成iterator,后面可以再调用built-in函数:__next__()进行迭代;

m = a.__next__()  #注意这里使用的是enumerate类型的built-in函数:__next__()

(2)法二:

a = torch.utils.data.DataLoader(...)

a = torch.utils.data.DataLoader.__iter__(a) #这里调用DataLoader的built-in函数:__iter__()将a变成iterator;

m = a.__next__() #注意:这里调用的是DataLoader的built-in函数:__next__()

PS:

(1)上述两种__next__()得到的封装结构是不同的,这个在拆解a时要注意;

(2)将容器(各种数据结构:list、tuple等)变成iterator时需要使用iter(),而对于类操作时需要在类中定义__init__()和__next__(),注意这点区别;(具体可参考:https://blog.csdn.net/admin_maxin/article/details/82052065 , 这样也说明了为什么不能用a = iter() , m=a.next()这种做法,因为a是一个类了,需要用built-in函数__iter__将其变成iterator,再用__next__(),否则会报“enumarate” object has no attribute "next"的错误 or "DataLoader" object has no attribute "next")

torch.utils.data.DataLoader对象中的迭代操作的更多相关文章

  1. PyTorch源码解读之torch.utils.data.DataLoader(转)

    原文链接 https://blog.csdn.net/u014380165/article/details/79058479 写得特别好!最近正好在学习pytorch,学习一下! PyTorch中数据 ...

  2. torch.utils.data.DataLoader与迭代器转换

    在做实验时,我们常常会使用用开源的数据集进行测试.而Pytorch中内置了许多数据集,这些数据集我们常常使用DataLoader类进行加载. 如下面这个我们使用DataLoader类加载torch.v ...

  3. pytorch的torch.utils.data.DataLoader认识

    PyTorch中数据读取的一个重要接口是torch.utils.data.DataLoader,该接口定义在dataloader.py脚本中,只要是用PyTorch来训练模型基本都会用到该接口, 该接 ...

  4. 【pytorch】torch.utils.data.DataLoader

    简介 DataLoader是PyTorch中的一种数据类型.用于训练/验证/测试时的数据按批读取. torch.utils.data.DataLoader(dataset, batch_size=1, ...

  5. torch.utils.data.DataLoader 将数据按批次分成很多组,每次抛出一个小组

    torch.utils.data.DataLoader 数据加载器,结合了数据集和取样器在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个 ...

  6. torch.utils.data.DataLoader使用方法

    数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集.在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个数据的初始化. 生成迭 ...

  7. torch.utils.data.DataLoader()中的pin_memory参数

    参考链接:http://www.voidcn.com/article/p-fsdktdik-bry.html 该pin_memory参数与锁页内存.不锁页内存以及虚拟内存三个概念有关: 锁页内存理解( ...

  8. spring data mongodb中,如果对象中的属性不想加入到数据库字段中

    spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://ww ...

  9. 微信小程序:给data中对象中的属性设置值与给data中的属性或对象或数组设置值的区别

    一.给data中的属性或对象或数组设置值,属性名不需要加引号 this.setData({ material: param, // 这里material为对象 } this.setData({   d ...

随机推荐

  1. AI GMM

    GMM(Gaussian Mixture Model,高斯混合模型)通常用于聚类(也用于密度估计),数据是由k个高斯分布生成,每个分布表示一个类. 期望最大(Expectation Maximizat ...

  2. SkylineGlobe7.0.1版本 支持SQLite(*.sqlite;*.db)数据库

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  3. 网站添加icon

    设置网站的icon<link rel="shortcut icon" href="./static/img/favicon.ico" >

  4. c++ fmt 库安装和使用示例

    安装: 1 git clone  https://github.com/fmtlib/fmt.git 2. cmake . 3. make && make install  #incl ...

  5. Scrapy安装报错

    python3 pip 安装Scrapy在win10 安装报错error: Microsoft Visual C++ 14.0 is required. Get it with "Micro ...

  6. iOS 封装SDK以及封装时bundle文件的处理

    这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个SDK,俗称.a文件. 环境:xcode 9.0 创建一个静态库工程 打开Xcode,点击File\New\Project, 选择iOS\ ...

  7. 软件工程(FZU2015) 赛季得分榜,第一回合

    SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分=团队得分+个人贡献分 个人贡献分: 个人 ...

  8. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  9. ORM关于表那些事

    一.. ORM表和表之间的关系 1. 一对多 --> 外键(ForeignKey) 2. 多对多 --> 另外一张关系表(ManyToManyField) 1. 三种方式 1. 自己建立第 ...

  10. logstash/conf.d文件编写

    logstash-01.conf input { beats { port => 5044 host => "0.0.0.0" type => "log ...