utils.data的使用
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的使用相关推荐
- 2021.08.24学习内容torch.utils.data.DataLoader以及CUDA与GPU的关系
pytorch数据加载: ①totchvision 的包,含有支持加载类似Imagenet,CIFAR10,MNIST 等公共数据集的数据加载模块 torchvision.datasets impor ...
- PyTorch 1.0 中文文档:torch.utils.data
译者:BXuan694 class torch.utils.data.Dataset 表示数据集的抽象类. 所有用到的数据集都必须是其子类.这些子类都必须重写以下方法:__len__:定义了数据集的规 ...
- pytorch torch.utils.data.TensorDataset
应用 import torch import torch.utils.data as Datax = torch.linspace(1, 10, 10) y = torch.linspace(10, ...
- pytorch torch.utils.data.Dataset
应用 from torch.utils.data import DataLoader, Dataset import torchclass TensorDataset(Dataset):# Tenso ...
- pytorch utils.data.DataLoader
1.应用 import torch import torch.utils.data as Data x = torch.linspace(1, 10, 10) y = torch.linspace(1 ...
- pytorch源码解析2——数据处理torch.utils.data
迭代器 理解 Python 的迭代器是解读 PyTorch 中 torch.utils.data 模块的关键. 在 Dataset, Sampler 和 DataLoader 这三个类中都会用到 py ...
- torch.utils.data.DataLoader 详解
class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, ...
- PyTorch—torch.utils.data.DataLoader 数据加载类
文章目录 DataLoader(object)类: _DataLoaderIter(object)类 __next__函数 pin_memory_batch() _get_batch函数 _proce ...
- torch.utils.data.WeightedRandomSampler样本不均衡情况下带权重随机采样
关于WeightedRandomSampler的用法csdn上有一些很棒的博客.本文参考博客Pytorch样本比例不均衡时采用WeightedRandomSampler进行采样的代码对Weighted ...
- torch.utils.data.WeightedRandomSampler采样
采样策略可分为以下情况: case0:Over sampling &Under sampling ,即对类别多的进行降采样,对类别少的进行重采样 case1: Over sampling 对类 ...
最新文章
- context.xml mysql_在tomcat下context.xml中配置各种数据库连接池(示例代码)
- SpringBoot + Elasticsearch7.6实现简单查询及高亮分词查询
- 【数字信号处理】相关函数 ( 自相关函数示例 )
- IDEA中新建SpringBoot项目时提示:Artifact contains illegal characters
- 电脑知识:如何保养自己的电脑,看完你就懂了!
- nginx文件系统大小_详解Nginx系列
- cba篮球暂停次数和时间_CBA一场比赛每支球队可以叫多少次暂停
- suse mysql 库文件_suse 10 下mysql安装
- 微信小程序也可以实现定位打卡/签到打卡了(附源码)
- 迅雷thunder://协议解密
- Android MVP 实践之路(理解篇)
- Vue本地项目实现其他局域网电脑在线访问
- 黑马程序员---java基础-Java之IO
- STM32_iC-MHM磁编码器使用
- 半同步半异步模式 -------一个架构模式,清晰的结构,高效并发的I/O
- 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器怎样将已安装的镜像文件转移到别的磁盘上...
- Redis 入门教程(一)
- PDF处理软件:无法加注释加高亮(解密PDF等)
- 被Facebook开除的中国工程师:我不后悔那天的决定
- 人人都要懂的代码重构