pytorch 中
数据 *** 作和
预处理
在 pytorch 中 torch.utils.data 模块包含着一些常用的数据预处理的 *** 作,主要用于数据的读取、切分、准备等。
类 | 功能 |
---|
torch.utils.data.TensorDataset()将数据处理为张量
torch.utils.data.ConcatDataset()连接多个数据集
torch.utils.data.Subset()根据索引获取数据集的子集
torch.utils.data.DataLoader()数据加载器
torch.utils.data.random_split()随机将数据集拆分为给定长度的非重叠新数据集
使用这些类能够对高维数组、图像等各种类型的数据进行预处理,以便深度学习模型的使用。针对文本数据的处理可以使用 torchtext 库进行相关的数据准备 *** 作。
高维数组
在很多情况下,我们需要从文本(如 csv 文件)中读取高维数组数据,这类数据的特征是每个样本都有很多个预测变量(特征)和一个被预测变量(目标标签),特征通常是数值变量或者离散变量,被预测变量如果是连续的数值,则对应着回归问题的预测,如果是离散变量,则对应着分类问题。在使用 pytorch 建立模型对数据进行学习时,通常要对数据进行预处理,并将它们转化为网络需要的数据形式。图像数据
torchvision 中的 datasets 模块包含多种常用的分类数据集下载及导入函数,可以很方便地导入数据以及验证所建立的模型效果。datasets 模块所提供的部分常用图像数据集如下。
数据集对应的类 | 描述 |
---|
datasets.MNIST()手写字体数据集
datasets.FashionMNIST()衣服、鞋子、包等 10 类数据集
datasets.KMNIST()一些文字的灰度数据
datasets.CocoCaptions()用于图像标注的 MS COCO 数据
datasets.CocoDetection()用于检测的 MS COCO 数据
datasets.LSUN()10 个场景和 20 个目标的分类数据集
datasets.CIFAR10()CIFAR10 类数据集
datasets.CIFAR100()CIFAR100 类数据集
datasets.STL10()包含 10 类的分类数据集和大量的未标记数据
datasets.ImageFolder()使用 lambd 作为转化器,可自定义图像 *** 作方式
torchvision 中的 transforms 模块可以针对每张图像进行预处理 *** 作,在该模块中提供了如下常用图像 *** 作。
数据集对应的类 | 描述 |
---|
transforms.Compose()将多个 transform 组合起来使用
transforms.Scale()按照指定的图像尺寸对图像进行调整
transforms.CenterCrop()将图像进行中心切割,得到给定的大小
transforms.RandomCrop()切割中心点的位置随机选取
transforms.RandomHorizontalFlip()图像随机水平翻转
transforms.RandomSizedCrop()将给定的图像随机切割,然后再变换为给定大小
transforms.Pad()将图像所有边用给定的 pad value 填充
transforms.ToTensor()把一个取值范围是 [0, 255] 的 PIL 图像或形状为 [H, W, C] 的数组,转换成形状为 [C, H, W],取值范围是 [0, 1.0] 的张量(torch.FloatTensor)
transforms.Normalize()将给定的图像进行规范化 *** 作
transforms.Lambda(lambd)使用 lambd 作为转化器,可自定义图像 *** 作方式
文本数据
对文本数据进行分类是深度学习任务中常见的应用,但是 pytorch 建立的深度学习网络并不能直接作用于文本数据,需要对文本数据进行相应的预处理。
评论列表(0条)