PyTorch源码解读(三)torchvision.datasets

PyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchvision.transforms。这3个子包的具体介绍可以参考官网:https://pytorch.org/docs/master/torchvision/datasets.html。
我的另外两篇博客对其他两个部分做了介绍分别为:

torchvision.models(https://blog.csdn.net/sinat_42239797/article/details/94329987)
torchvision.transforms(https://blog.csdn.net/sinat_42239797/article/details/93857364)

这篇博客介绍torchvision.datasets。torchvision.datasets这个包中包含MNIST、FakeData、COCO、LSUN、ImageFolder、DatasetFolder、ImageNet、CIFAR等一些常用的数据集,并且提供了数据集设置的一些重要参数设置,可以通过简单数据集设置来进行数据集的调用。从这些数据集中我们也可以看出数据集设置的主要变量有哪些并且有什么功能对将来自己数据集的设置也有极大的帮助。
以上数据集的接口基本上很相近。它们至少包括两个公共的参数transform和target_transform,以便分别对输入和和目标做变换
所有数据集的子类torch.utils.data.Dataset ,即,它们具有__getitem__和__len__方法来实现。因此,它们都可以传递给torch.utils.data.DataLoader 可以使用torch.multiprocessing并行加载多个样本。
官方网给出了下面的一个例子,直观感受一下:

imagenet_data = torchvision.datasets.ImageNet('path/to/imagenet_root/')
data_loader = torch.utils.data.DataLoader(imagenet_data,
                                          batch_size=4,
                                          shuffle=True,
                                          num_workers=args.nThreads)

下面以MNIST数据集为例进行介绍:

  torchvision.datasets.MNIST(root,train = True,transform = None,target_transform = None,download = False )
#  参数介绍:
 #root(string) - 数据集的根目录在哪里MNIST/processed/training.pt 和 MNIST/processed/test.pt存在。
 # train(bool,optional) - 如果为True,则创建数据集training.pt,否则创建数据集test.pt。
 #download(bool,optional) - 如果为true,则从Internet下载数据集并将其放在根目录中。如果已下载数据集,则不会再次下载。
 # transform(callable ,optional) - 一个函数/转换,它接收PIL图像并返回转换后的版本。例如,transforms.RandomCrop
 # target_transform(callable ,optional) - 接收目标并对其进行转换的函数/转换。

这是数据集调用时各个参数的详细介绍及使用情况,其它自带数据集的使用也是这样的。假如你想使用自己的数据集,可按照这个对自己数据集进行详细的设置,其详细的设置情况我在另一篇博客中写到了,大家可以当做参考https://blog.csdn.net/sinat_42239797/article/details/90641659

你可能感兴趣的:(pytorch)