我对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 urlopen 使用小示例
Sep 06 Python
python查询sqlite数据表的方法
May 08 Python
python实现给数组按片赋值的方法
Jul 28 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
python解释器安装教程的方法步骤
Jul 02 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 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中AES加密解密的例子小结
2014/02/18 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
php微信开发自定义菜单
2016/08/27 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
python matlab库简单用法讲解
2020/12/31 Python
python drf各类组件的用法和作用
2021/01/12 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
总经理岗位职责范本
2014/02/02 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
Python学习之异常中的finally使用详解
2022/03/16 Python