utils.data包括Dataset和DataLoader。

torch.utils.data.Dataset为抽象类。自定义数据集余姚继承这个类,并实现两个函数:

__getitem__  ,  __len__ ,前者通过给定的索引获取数据和标签,后者提供数据集大小。

__getitem__ 一次只能获取一个数据,所以用DataLoader来实现batchsize的读取。

import numpy as np
import torch
from torch.utils import data
from torch.utils.data import DataLoaderclass TestDataset(data.Dataset):def __init__(self):self.Data = np.asarray([[1,2],[3,4],[2,1],[3,4],[4,5]])self.Label = np.asarray([0,1,0,1,2])def __getitem__(self, index):txt = torch.from_numpy(self.Data[index])label = torch.tensor(self.Label[index])return txt,labeldef __len__(self):return len(self.Data)
Test = TestDataset()
print(Test[2])
print(Test.__len__())

以上数据以tuple返回,每次只返回一个样本。实际上,Dataset只负责数据的抽取,调用一次

__getitem__只返回一个样本。

下面是使用DataLoader的批处理

dataset = TestDataset()
test_loader = DataLoader(dataset,batch_size=2,shuffle=False)
for i,traindata in enumerate(test_loader):print('i:',i)Data,Label = traindataprint('data:',Data)print('Label:',Label)

结果

(tensor([2, 1], dtype=torch.int32), tensor(0, dtype=torch.int32))
5
i: 0
data: tensor([[1, 2],[3, 4]], dtype=torch.int32)
Label: tensor([0, 1], dtype=torch.int32)
i: 1
data: tensor([[2, 1],[3, 4]], dtype=torch.int32)
Label: tensor([0, 1], dtype=torch.int32)
i: 2
data: tensor([[4, 5]], dtype=torch.int32)
Label: tensor([2], dtype=torch.int32)

data.Dataset只能处理同一个目录下的数据。想要处理不同目录下的数据可以使用torchvision。

utils.data的使用相关推荐

  1. 2021.08.24学习内容torch.utils.data.DataLoader以及CUDA与GPU的关系

    pytorch数据加载: ①totchvision 的包,含有支持加载类似Imagenet,CIFAR10,MNIST 等公共数据集的数据加载模块 torchvision.datasets impor ...

  2. PyTorch 1.0 中文文档:torch.utils.data

    译者:BXuan694 class torch.utils.data.Dataset 表示数据集的抽象类. 所有用到的数据集都必须是其子类.这些子类都必须重写以下方法:__len__:定义了数据集的规 ...

  3. pytorch torch.utils.data.TensorDataset

    应用 import torch import torch.utils.data as Datax = torch.linspace(1, 10, 10) y = torch.linspace(10, ...

  4. pytorch torch.utils.data.Dataset

    应用 from torch.utils.data import DataLoader, Dataset import torchclass TensorDataset(Dataset):# Tenso ...

  5. pytorch utils.data.DataLoader

    1.应用 import torch import torch.utils.data as Data x = torch.linspace(1, 10, 10) y = torch.linspace(1 ...

  6. pytorch源码解析2——数据处理torch.utils.data

    迭代器 理解 Python 的迭代器是解读 PyTorch 中 torch.utils.data 模块的关键. 在 Dataset, Sampler 和 DataLoader 这三个类中都会用到 py ...

  7. torch.utils.data.DataLoader 详解

    class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, ...

  8. PyTorch—torch.utils.data.DataLoader 数据加载类

    文章目录 DataLoader(object)类: _DataLoaderIter(object)类 __next__函数 pin_memory_batch() _get_batch函数 _proce ...

  9. torch.utils.data.WeightedRandomSampler样本不均衡情况下带权重随机采样

    关于WeightedRandomSampler的用法csdn上有一些很棒的博客.本文参考博客Pytorch样本比例不均衡时采用WeightedRandomSampler进行采样的代码对Weighted ...

  10. torch.utils.data.WeightedRandomSampler采样

    采样策略可分为以下情况: case0:Over sampling &Under sampling ,即对类别多的进行降采样,对类别少的进行重采样 case1: Over sampling 对类 ...

最新文章

  1. context.xml mysql_在tomcat下context.xml中配置各种数据库连接池(示例代码)
  2. SpringBoot + Elasticsearch7.6实现简单查询及高亮分词查询
  3. 【数字信号处理】相关函数 ( 自相关函数示例 )
  4. IDEA中新建SpringBoot项目时提示:Artifact contains illegal characters
  5. 电脑知识:如何保养自己的电脑,看完你就懂了!
  6. nginx文件系统大小_详解Nginx系列
  7. cba篮球暂停次数和时间_CBA一场比赛每支球队可以叫多少次暂停
  8. suse mysql 库文件_suse 10 下mysql安装
  9. 微信小程序也可以实现定位打卡/签到打卡了(附源码)
  10. 迅雷thunder://协议解密
  11. Android MVP 实践之路(理解篇)
  12. Vue本地项目实现其他局域网电脑在线访问
  13. 黑马程序员---java基础-Java之IO
  14. STM32_iC-MHM磁编码器使用
  15. 半同步半异步模式 -------一个架构模式,清晰的结构,高效并发的I/O
  16. 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器怎样将已安装的镜像文件转移到别的磁盘上...
  17. Redis 入门教程(一)
  18. PDF处理软件:无法加注释加高亮(解密PDF等)
  19. 被Facebook开除的中国工程师:我不后悔那天的决定
  20. 人人都要懂的代码重构

热门文章

  1. Maven配置中央仓库
  2. Hibernate的evict方法和clear方法的区别
  3. Shiny进阶:Busy Button
  4. Houdini 节点
  5. Python基础知识笔记
  6. UCOSII操作系统(四)--任务管理
  7. 终端命令-文件操作、编辑操作
  8. UPP映象(A C++ GUI lib)
  9. 《数据统计分析及R语言编程(第二版)》练习题总结(一)
  10. HEIC文件怎么打开,如何将HEIC格式转换为JPG格式