torch.utils.data.DataLoader对象中的迭代操作
关于迭代器等概念参考: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对象中的迭代操作的更多相关文章
- PyTorch源码解读之torch.utils.data.DataLoader(转)
原文链接 https://blog.csdn.net/u014380165/article/details/79058479 写得特别好!最近正好在学习pytorch,学习一下! PyTorch中数据 ...
- torch.utils.data.DataLoader与迭代器转换
在做实验时,我们常常会使用用开源的数据集进行测试.而Pytorch中内置了许多数据集,这些数据集我们常常使用DataLoader类进行加载. 如下面这个我们使用DataLoader类加载torch.v ...
- pytorch的torch.utils.data.DataLoader认识
PyTorch中数据读取的一个重要接口是torch.utils.data.DataLoader,该接口定义在dataloader.py脚本中,只要是用PyTorch来训练模型基本都会用到该接口, 该接 ...
- 【pytorch】torch.utils.data.DataLoader
简介 DataLoader是PyTorch中的一种数据类型.用于训练/验证/测试时的数据按批读取. torch.utils.data.DataLoader(dataset, batch_size=1, ...
- torch.utils.data.DataLoader 将数据按批次分成很多组,每次抛出一个小组
torch.utils.data.DataLoader 数据加载器,结合了数据集和取样器在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个 ...
- torch.utils.data.DataLoader使用方法
数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集.在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个数据的初始化. 生成迭 ...
- torch.utils.data.DataLoader()中的pin_memory参数
参考链接:http://www.voidcn.com/article/p-fsdktdik-bry.html 该pin_memory参数与锁页内存.不锁页内存以及虚拟内存三个概念有关: 锁页内存理解( ...
- spring data mongodb中,如果对象中的属性不想加入到数据库字段中
spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://ww ...
- 微信小程序:给data中对象中的属性设置值与给data中的属性或对象或数组设置值的区别
一.给data中的属性或对象或数组设置值,属性名不需要加引号 this.setData({ material: param, // 这里material为对象 } this.setData({ d ...
随机推荐
- redis 初步认识四(redis锁,防并发)
using System; namespace ConsoleAppRedis { class Program { static void Main(string[] args) { //第一种,无登 ...
- Windows 支持 OpenSSH 了!
从 Win10 1809 和 Windows Server 2019 开始 Windows 开始支持 OpenSSH Server.本文介绍一下其基本的概念和配置方法,本文演示用的环境为 Win10 ...
- Gruntfile.js模板
module.exports = function(grunt) { // 配置项 var AppConfig = { name: 'app', //源文件目录 src: 'app/src', //生 ...
- 【ubuntu】修改php-fpm和nginx运行用户
(php)项目a是用test用户运行nginx和php-fpm是www-data用户运行(python)项目b是用test用户运行 项目a通过php函数exec调用python脚本的接口造成了没有权限 ...
- jsp篇 之 jsp页面中的路径问题
jsp页面中的路径问题: 一般情况下,jsp中路径问题是和我们之前在servlet中讨论的html里面的路径问题是一 样的,但是在[jsp中可以动态获得该项目的url]. 如果在jsp页面的上面写了这 ...
- ORM之自关联、add、set方法、聚合函数、F、Q查询和事务
一.外键自关联(一对多) 1.建表 # 评论表 class Comment(models.Model): id = models.AutoField(primary_key=True) content ...
- apt-get软件包管理命令 和 apt-key命令
apt-get命令是Debian Linux发行版中的APT软件包管理工具. 所有基于Debian的发行都使用这个包管理系统.deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件 ...
- Android greenDAO 数据库 简单学习之基本使用
看网上对greenDAO介绍的不错,今天就动手来试一把,看看好不好使. greenDAO 官方网站:http://greendao-orm.com/ 代码托管地址:https://github.com ...
- Math & Number Theory
数学 数论: 莫比乌斯反演 矩阵游戏 小学数学,欧拉定理 组合: 线性代数: 高斯消元 其他: 一些题目
- Django 2.0.4 微博第三方登录
三方登录逻辑 理解第三方登录的流程: 用户向本地应用商城发起请求,我要用微博进行登录 我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面) 用户在该界面点击输入用户名密码之后,点击授 ...