返回顶部
首页 > 资讯 > 后端开发 > Python >我对PyTorch dataloader里的shuffle=True的理解
  • 555
分享到

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

2024-04-02 19:04:59 555人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

对shuffle=True的理解: 之前不了解shuffle的实际效果,假设有数据a,b,c,d,不知道batch_size=2后打乱,具体是如下哪一种情况: 1.先按顺序取batc

对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())

简易数据集

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 我对PyTorch dataloader里的shuffle=True的理解

本文链接: https://lsjlt.com/news/126461.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 我对PyTorch dataloader里的shuffle=True的理解
    对shuffle=True的理解: 之前不了解shuffle的实际效果,假设有数据a,b,c,d,不知道batch_size=2后打乱,具体是如下哪一种情况: 1.先按顺序取batc...
    99+
    2024-04-02
  • PyTorch dataloader中shuffle=True的示例分析
    小编给大家分享一下PyTorch dataloader中shuffle=True的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对shuffle=True...
    99+
    2023-06-15
  • pytorch中dataloader的sampler参数详解
    目录1. dataloader() 初始化函数2. shuffle 与sample 之间的关系3. sample 的定义方法3.1 sampler 参数的使用4. batch 生成过...
    99+
    2024-04-02
  • Pytorch中DataLoader的使用方法详解
    目录一:dataset类构建。二:DataLoader使用三:举例前言加载数据datasetdataloader在Pytorch中,torch.utils.data中的Dataset...
    99+
    2024-04-02
  • pytorch DataLoader的num_workers参数与设置大小详解
    Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的? train_loader = torch....
    99+
    2024-04-02
  • 谈谈对Pytorch中的forward的理解
    目录写在前面正文为什么都用def forward,而不改个名字?forward有什么特殊功能?第一条:.forward()可以不写第二条:优先运行forward方法总结写在前面 以下...
    99+
    2023-05-14
    Pytorch中的forward Pytorch forward
  • 我对python线程池的理解
    #!/usr/bin/env pythonfrom Queue import Queuefrom threading import Threadimport randomimport timedef person(i,q):    whil...
    99+
    2023-01-31
    我对 线程 python
  • Pytorch dataloader在加载最后一个batch时卡死的解决
    问题: 自己写了个dataloader,为了部署方便,用OpenCV的接口进行数据读取,而没有用PIL,代码大致如下: def __getitem__(self, idx...
    99+
    2024-04-02
  • python之我对装饰器的理解
      从一开始学习python的时候,就一直不是很理解装饰器是个什么东东,再看了很多篇博文和自己动手敲了好多代码后,算是略有了解。  我理解的装饰器是: 在不改变原有函数调用的情况下,对其进行包装,使其变成另外一种函数来使用,一般的用途是 插...
    99+
    2023-01-31
    我对 python
  • 对PyTorch中inplace字段的全面理解
    例如 torch.nn.ReLU(inplace=True) inplace=True 表示进行原地操作,对上一层传递下来的tensor直接进行修改,如x=x+3; ...
    99+
    2024-04-02
  • 解决Pytorch dataloader时报错每个tensor维度不一样的问题
    使用pytorch的dataloader报错: RuntimeError: stack expects each tensor to be equal size, but got ...
    99+
    2024-04-02
  • 理解PHP函数中true的含义
    理解PHP函数中true的含义,需要具体代码示例 在PHP编程中,true是一个布尔类型的值,表示逻辑真。在函数中,true通常用于表示某个条件成立或某个操作成功。理解PHP函数中tr...
    99+
    2024-03-15
    - php - 函数 - true
  • 聊一聊我对 React Context 的理解以及应用
    目录前言 初识React Context 如何使用Context 几个可以直接获取Context的地方 我对Context的理解 把Context当做组件作用域 关注Context的...
    99+
    2024-04-02
  • 深入理解pytorch库的dockerfile
    目录0. dockerfile命令1. 使用指令的注意点2. dockerfile3. 参考4. 存在的问题0. dockerfile命令 FROM # 基础镜像,一切从这里开...
    99+
    2024-04-02
  • 深入理解Pytorch中的torch.matmul()
    目录torch.matmul()语法作用举例情形1: 一维 * 一维情形2: 二维 * 二维情形3: 一维 * 二维情形4: 二维 * 一维情形5:两个参数至少为一维且至少一个参数为...
    99+
    2023-05-15
    Pytorch torch. matmul() torch. matmul()
  • 我很理解MySQL中的double write
    本篇文章为大家展示了我很理解MySQL中的double write,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。     MySQL...
    99+
    2024-04-02
  • 深入理解PyTorch中的nn.Embedding的使用
    目录一、前置知识1.1 语料库(Corpus)1.2 词元(Token)1.3 词表(Vocabulary)二、nn.Embedding 基础2.1 为什么要 embedding?2...
    99+
    2024-04-02
  • pytorch中torch.topk()函数的快速理解
    目录函数作用:举个栗子:实例演示总结函数作用: 该函数的作用即按字面意思理解,topk:取数组的前k个元素进行排序。 通常该函数返回2个值,第一个值为排序的数组,第二个值为该数组...
    99+
    2024-04-02
  • 对xmlHttp对象的理解
    XMLHttpRequest对象是一个浏览器提供的内置对象,它用于在后台与服务器进行数据交互。通过该对象,可以在不刷新页面的情况下获...
    99+
    2023-08-17
    xmlHttp
  • JAVA实现对阿里云DNS的解析管理
    目录1、阿里云DNS的SDK依赖2、第一个方法:创建SDK客户端实例3、第二个方法:返回指定的记录ID(RecordId)4、第三个方法:添加或修改指定的记录5、第四个方法:删除指定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作