torchvision代码入门
pytorch有一个配套的python包叫做torchvision,里面包含了很多好用的cv模型和数据集。 > github地址: https://github.com/pytorch/vision
这个系列的文章会简析一下其内部代码及作用。
第一篇文章是overview。
##从首页可以看到其中有四个主要的模块。
###vision.datasets : Data loaders for popular vision dataset. 预置数据集,方便读取。 ###vision.models : Definitions for popular model architectures, such as AlexNet, VGG, and ResNet and pre-trained models. 主流模型,并且提供预训练权值下载。 ###vision.transforms : Common image transformations such as random crop, rotations etc. 图像扩充时用来变幻。 ###vision.utils : Useful stuff such as saving tensor (3 x H x W) as image to disk, given a mini-batch creating a grid of images, etc. 图像储存工具。
##数据集 MNIST COCO (Captioning and Detection) LSUN Classification ImageFolder Imagenet-12 CIFAR10 and CIFAR100 STL10 SVHN PhotoTour
##模型 AlexNet: AlexNet variant from the “One weird trick” paper. VGG: VGG-11, VGG-13, VGG-16, VGG-19 (with and without batch normalization) ResNet: ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 SqueezeNet: SqueezeNet 1.0, and SqueezeNet 1.1
##变形
transform = transforms.Compose([
transforms.RandomSizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean = [ 0.485, 0.456, 0.406 ],
std = [ 0.229, 0.224, 0.225 ]),
])
本文以mnist介绍dateset,并介绍了如何自定义dataset。
mnist代码: 下载
可以看到,一个dataset都要继承一个torch.utils.data内的Dataset类。为了使一个dataset可以被pytorch内置的dataloader载入,必须实现两个method:
def __getitem__(self, index):
def __len__(self):
第一个__getitem__通过一个index来返回一个数据项,第二个__len__返回数据的数目。