介绍
小编给大家分享一下PyTorch dataloader中洗牌=True的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
对shuffle=True的理解:
之前不了解洗牌的实际效果,假设有数据a, b, c, d,不知道batch_size=2后打乱,具体是如下哪一种情况:
1。先按顺序取批对批内打乱,即先取a, b, a, b进行打乱;
2。先打乱,再取批。
证明是第二种
shuffle (bool,可选):,set 用“真”“,用have 从而data reshuffled at every  epoch (默认值:,“False”)。 if 洗牌: ,,,sampler =, RandomSampler(数据集),#此时得到的是索引
<强>补充:简单测试一下pytorch dataloader里的洗牌=True是如何工作的强>
看代码吧~
import 系统 import 火炬 import 随机 import argparse import numpy  as np import pandas  as pd import torch.nn  as 神经网络 得到torch.nn import  functional as F 得到torch.optim import  lr_scheduler 得到torchvision import 数据集转换 得到torch.utils.data import  TensorDataset, DataLoader,数据集 , class DealDataset(数据): ,,,def __init__(自我): ,,,,,,,xy =, np.loadtxt(开放(& # 39;。/iris.csv& # 39;, & # 39; rb # 39;),,分隔符=& # 39;,& # 39;,,dtype=np.float32) ,,,,,,,# data =, pd.read_csv (“iris.csv"头=没有) ,,,,,,,# 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__(自我,,指数): ,,,,,,,return self.x_data(指数),self.y_data(指数) , ,,,def __len__(自我): ,,,,,,,return self.len ,, 时间=dealDataset DealDataset (), 时间=train_loader2 DataLoader(数据集=dealDataset, ,,,,,,,,,,,,,,,,,,,,,,,,,batch_size=2, ,,,,,,,,,,,,,,,,,,,,,,,,,洗牌=True) #打印(dealDataset.x_data) for 我,data 拷贝;列举(train_loader2): ,,,输入,labels =,数据 , ,,,#输入,labels =,变量(输入),变量(标签) ,,,印刷(输入) ,,,#打印(“时代:“,,时代,,,的第“,,,我,,,个inputs",, inputs.data.size (),“labels",, labels.data.size ())
简易数据集
洗牌之后的结果,每次都是随机打乱,然后分成大小为n的若干个mini-batch。
PyTorch的优点
1. PyTorch是相当简洁且高效快速的框架;2。设计追求最少的封装;3。设计符合人类思维,它让用户尽可能地专注于实现自己的想法;4。与谷歌的Tensorflow类似,公平的支持足以确保PyTorch获得持续的开发更新;5。PyTorch作者亲自维护的论坛供用户交流和求教问题6。入门简单
以上是“PyTorch dataloader中洗牌=True的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!