我对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 简易计算器程序,代码就几行
Aug 29 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
Python json模块dumps、loads操作示例
Sep 06 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
python编写五子棋游戏
May 25 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
php桌面中心(四) 数据显示
2007/03/11 PHP
UCenter Home二次开发指南
2009/05/28 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
JavaScript计算出两个数的差值
2020/03/19 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
python3.0 字典key排序
2008/12/24 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python 自动批量打开网页的示例
2019/02/21 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
python实现二分查找算法
2020/09/18 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
毕业生找工作自荐书
2014/06/30 职场文书
唐山大地震观后感
2015/06/05 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python