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 对类 ...
最新文章
- winfrom gridview 导出到Excel文件的代码
- 众辰变频器参数设定_电工知识:变频器使用方法设定功能参数的方法
- Asp.net中使用WEB编辑控件FCKEditor
- 黑色幽默:“新知青”电影《走着瞧》首映
- Entity Framework 6 执行Linq to Entities异常“p__linq__1 : String truncation: max=0, len=2, value=‘测试‘“
- Linux Performance Observability Tools
- navigationBar模块未绑定
- oracle还原数据库方法,oracle数据库备份与还原(命令与方法)
- windows7 android 驱动,Windows7安卓刷机驱动安装教程图文详解
- 苹果画画软件_想在iPad 上画画,推荐用这些软件
- ldd -r xxx.so命令 undefined symbol即错误定位c++filt
- 短信工具类——mo信通
- Android studio 快速“Gradle的依赖缓存可能损坏”问题
- 安卓调用百度地图服务
- lighttpd 使用
- 学习笔记——基于FPGA的SD卡学习(1)
- USB Type-C引脚解析 CC、DFP、UFP、DRP用途解析【转】
- docker安装mysql并配置文件_docker 安装mysql5.7 加my.cnf
- 微信小程序设置锚点定位,wx.pageScrollTo
- 刘汝佳 例题7-1 除法(暴力解法)