我对PyTorch dataloader里的shuffle=True的理解


Posted in Python onMay 20, 2021

对shuffle=True的理解:

之前不了解shuffle的实际效果,假设有数据a,b,c,d,不知道batch_size=2后打乱,具体是如下哪一种情况:

1.先按顺序取batch,对batch内打乱,即先取a,b,a,b进行打乱;

2.先打乱,再取batch。

证明是第二种

shuffle (bool, optional): set to ``True`` to have the data reshuffled 
at every epoch (default: ``False``).
if shuffle:
    sampler = RandomSampler(dataset) #此时得到的是索引

补充:简单测试一下pytorch dataloader里的shuffle=True是如何工作的

看代码吧~

import sys
import torch
import random
import argparse
import numpy as np
import pandas as pd
import torch.nn as nn
from torch.nn import functional as F
from torch.optim import lr_scheduler
from torchvision import datasets, transforms
from torch.utils.data import TensorDataset, DataLoader, Dataset
 
class DealDataset(Dataset):
    def __init__(self):
        xy = np.loadtxt(open('./iris.csv','rb'), delimiter=',', dtype=np.float32)
        #data = pd.read_csv("iris.csv",header=None)
        #xy = data.values
        self.x_data = torch.from_numpy(xy[:, 0:-1])
        self.y_data = torch.from_numpy(xy[:, [-1]])
        self.len = xy.shape[0]
    
    def __getitem__(self, index):
        return self.x_data[index], self.y_data[index]
 
    def __len__(self):
        return self.len
   
dealDataset = DealDataset() 
train_loader2 = DataLoader(dataset=dealDataset,
                          batch_size=2,
                          shuffle=True)
#print(dealDataset.x_data)
for i, data in enumerate(train_loader2):
    inputs, labels = data
 
    #inputs, labels = Variable(inputs), Variable(labels)
    print(inputs)
    #print("epoch:", epoch, "的第" , i, "个inputs", inputs.data.size(), "labels", labels.data.size())

简易数据集

我对PyTorch dataloader里的shuffle=True的理解我对PyTorch dataloader里的shuffle=True的理解

shuffle之后的结果,每次都是随机打乱,然后分成大小为n的若干个mini-batch.

我对PyTorch dataloader里的shuffle=True的理解

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python计算对角线有理函数插值的方法
May 07 Python
python生成器generator用法实例分析
Jun 04 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 Python
Python快速优雅的批量修改Word文档样式
Django migrate报错的解决方案
Django使用channels + websocket打造在线聊天室
教你怎么用python爬取爱奇艺热门电影
Pytorch使用shuffle打乱数据的操作
May 20 #Python
教你利用Selenium+python自动化来解决pip使用异常
python 提取html文本的方法
May 20 #Python
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
php数组去除空值函数分享
2015/02/02 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
类之Prototype.js学习
2007/06/13 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
js 获取范围内的随机数实例代码
2016/08/02 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
go语言计算两个时间的时间差方法
2015/03/13 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
双创工作实施方案
2014/03/26 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书