一. 数据处理工具箱概述
Pytorch设计数据处理(数据装载、数据预处理、数据增强等)主要工具包及相互关系如图所示。
左边的是torch.utils.data工具包,它包括以下四个类
1.Dataset:是一个抽象类,其他数据集需要继承这个类,并且覆写其中的两个方法(_ getitem_、_ len_)。
2.Dataloader:定义一个新的迭代器,实现批量(batch)读取,到alciuju并提供并行加速等功能。
3.random_split:把数据集随即拆分未给定长度的非重叠的新数据集。
4.*Sampler:多种采样函数
图中间是Pytorch的可视化处理工具Torchvision,其是Pytorch的一个视觉处理工具包,独立于Pytorch,需要另外安装。
它包括4各类,主要是:
1.datasets:提供常用的数据集加载,设计上都哦继承自torch.utils.data.Dataset,主要包括MNIST、CIFAR10/100、ImageNet和COCO等。
2.Models:提供深度学习中各种经典的网络结构以及训练好的模型(如果选择pretrained=True)。
3.transforms:常用的数据预处理操作,主演包括对Tensor及PIL Image对象的操作
4.utils:含两个函数,一个是make_grid,它能将多张图片集拼接在一个网络中;另一个是save_img,它能将Tensor保存成图片。
1.utils.data简介
utils.data包括Dataset和Dataloader。torch.utils.data.Dataset未抽象类。自定义数据集需要继承这个类,并实现两个函数,一个是_getitem_,一个是 len,前者通过给定索引获取数据和标签,后者提供数据的大小(size)。_getitem_一次只能获取一个数据,所以要通过torch.utils.data.DataLoader来定义一个新的迭代器,实现batch读取。
1.导入需要的模块
import torch
from torch.utils import data
import numpy as np
2.定义获取数据记得类。
该类继承类Dataset,自定义一个数据集及对应的标签。
class TestDataset(data.Dataset