torchvision.datasets
torchvision.datasets
中包含了以下数据集
- MNIST
- COCO(用于图像标注和目标检测)(Captioning and Detection)
- LSUN Classification
- ImageFolder
- Imagenet-12
- CIFAR10 and CIFAR100
- STL10
- SVHN
- PhotoTour
所有数据集都是torch.utils.data.Dataset
的子类, 即它们具有getitem和len实现方法。因此,它们都可以传递给torch.utils.data.DataLoader
可以使用torch.multiprocessing
工作人员并行加载多个样本的数据。例如:
imagenet_data = torchvision.datasets.ImageFolder('path/to/imagenet_root/')
data_loader = torch.utils.data.DataLoader(imagenet_data,
batch_size=4,
shuffle=True,
num_workers=args.nThreads)
所有的数据集都有几乎相似的API。他们都有两个共同的参数: transform和 target_transform分别转换输入和目标。
MNIST
dset.MNIST(root, train=True, transform=None, target_transform=None, download=False)
参数说明:
root
: 数据集,存在于根目录processed/training.pt 和 processed/test.pt中。train
:True
= 训练集,False
= 测试集download
: 如果为true,请从Internet下载数据集并将其放在根目录中。如果数据集已经下载,则不会再次下载。transform
:接收PIL映像并返回转换版本的函数/变换。例如:transforms.RandomCrop
target_transform
:一个接收目标并转换它的函数/变换。
COCO
需要安装COCO API
dset.CocoCaptions(root="dir where images are", annFile="json annotation file", [transform, target_transform])
参数说明:
root(string)
- 图像下载到的根目录。annFile(string)
- json注释文件的路径。transform(可调用,可选)
- 接收PIL映像并返回转换版本的函数/变换。例如:transforms.ToTensortarget_transform(可调用,可选)
- 一个接收目标并转换它的函数/变换。
例子:
import torchvision.datasets as dset
import torchvision.transforms as transforms
cap = dset.CocoCaptions(root = 'dir where images are',
annFile = 'json annotation file',
transform=transforms.ToTensor())
print('Number of samples: ', len(cap))
img, target = cap[3] # load 4th sample
print("Image Size: ", img.size())
print(target)
输出:
Number of samples: 82783
Image Size: (3L, 427L, 640L)
[u'A plane emitting smoke stream flying over a mountain.',
u'A plane darts across a bright blue sky behind a mountain covered in snow',
u'A plane leaves a contrail above the snowy mountain top.',
u'A mountain that has a plane flying overheard in the distance.',
u'A mountain view with a plume of smoke in the background']
getitem(index) 参数: index(int) - 索引 返回: 元组(图像,目标)。目标是图片的标题列表。 返回类型: 元组
检测:
dset.CocoDetection(root="dir where images are", annFile="json annotation file", [transform, target_transform])
参数:
root(string)
- 图像下载到的根目录。annFile(string)
- json注释文件的路径。transform
(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.ToTensortarget_transform
(可调用,可选) - 一个接收目标并转换它的函数/变换。
getitem(index) 参数: index(int) - 索引 返回: 元组(图像,目标)。目标是图片的标题列表。 返回类型: 元组
LSUN
dset.LSUN(db_path, classes='train', [transform, target_transform])
参数说明:
db_path
= 数据集文件的根目录classe
=train
(所有类别, 训练集),val
(所有类别, 验证集),test
(所有类别, 测试集) [bedroom_train
,church_train
, …] : 要加载的类别列表transform
(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCroptarget_transform
(可调用,可选) - 一个接收目标并转换它的函数/变换。
ImageFolder
一个通用的数据加载器,数据集中的数据以以下方式组织
root/dog/xxx.png
root/dog/xxy.png
root/dog/xxz.png
root/cat/123.png
root/cat/nsdf3.png
root/cat/asd932_.png
dset.ImageFolder(root="root folder path", [transform, target_transform])
参数说明:
root(string)
- 根目录路径。transform
(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCroptarget_transform
(可调用,可选) - 一个接收目标并转换它的函数/变换。loader
- 加载给定其路径的图像的函数。
Imagenet-12
这应该简单地用ImageFolder
数据集实现。数据按照这里所述进行预处理 这里有一个例子
CIFAR
dset.CIFAR10(root, train=True, transform=None, target_transform=None, download=False)
dset.CIFAR100(root, train=True, transform=None, target_transform=None, download=False)
参数说明:
- root : cifar-10-batches-py 的根目录
- train : True = 训练集, False = 测试集
- download : True = 从互联上下载数据,并将其放在root目录下。如果数据集已经下载,什么都不干。
- transform(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCrop
- target_transform(可调用,可选) - 一个接收目标并转换它的函数/变换。
STL10
dset.STL10(root, split='train', transform=None, target_transform=None, download=False)
参数说明:
- root : stl10_binary的根目录
- split : ‘train’ = 训练集, ‘test’ = 测试集, ‘unlabeled’ = 无标签数据集, ‘train+unlabeled’ = 训练 + 无标签数据集 (没有标签的标记为-1)
- download : True = 从互联上下载数据,并将其放在root目录下。如果数据集已经下载,什么都不干。
- transform(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCrop
- target_transform(可调用,可选) - 一个接收目标并转换它的函数/变换。
SVHN
class torchvision.datasets.SVHN(root, split='train', transform=None, target_transform=None, download=False)
参数:
- root(string) - 目录SVHN存在的数据集的根目录 。
- split(string) - {‘train’,’test’,’extra’}之一。因此选择数据集。“额外”是额外的训练集。
- transform(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCrop
- target_transform(可调用,可选) - 一个接收目标并转换它的函数/变换。
- download (bool,可选) - 如果为true,请从Internet下载数据集并将其放在根目录中。如果数据集已经下载,则不会再次下载。
PhotoTour
class torchvision.datasets.PhotoTour(root, name, train=True, transform=None, download=False)
参数:
- root(string) - 图像所在的根目录。
- name(string) - 要加载的数据集的名称。
- transform(可调用,可选) - 接收PIL映像并返回转换版本的函数/变换。
- download (bool,可选) - 如果为true,请从Internet下载数据集并将其放在根目录中。如果数据集已经下载,则不会再次下载。
译者署名
用户名 | 头像 | 职能 | 签名 |
---|---|---|---|
Song | 翻译 | 人生总要追求点什么 |