我对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实现代码
Oct 10 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python线程下使用锁的技巧分享
Sep 13 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
Pandas数据类型之category的用法
Jun 28 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设计模式小结
2013/02/15 PHP
smarty简单分页的实现方法
2014/10/27 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
php四种定界符详解
2017/02/16 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python微信操控itchat的方法
2019/05/31 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
工地安全标语
2014/06/07 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
Python实现对齐打印 format函数的用法
2022/04/28 Python