美文网首页
torchvision指南

torchvision指南

作者: zhaoQiang012 | 来源:发表于2018-07-23 14:25 被阅读0次

torchvision指南

本笔记引用自PyTorch中文文档

1. torchvision介绍

torchvision包含了目前流行的数据集,模型结构和常用的图片转换工具。

1.1 torchvision.datasets

  • torchvision.datasets中包含以下数据集:
    • MNIST
    • COCO
    • LSUN Classification
    • ImageFolder
    • Imagenet-12
    • CIFAR10 and CIFAR100
    • STL10
  • dataset拥有以下API:__getitem__, __len__
  • 这些datasets都是torch.utils.data.Dataset的子类

1.1.1 MNIST

  • dest.MNIST(root, train=True, transform=None, target_transform=None, download=False)
    -download: 是否联网下载

1.1.2 COCO

  • 图像标注
  • dest.CocoCaptions(root="dir where images are", annFile="json annotation file", [transform, target_transform, transform])
# sample
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 sample: ', len(cap))
img, target = cap[3]
print('Image size:', img.size())
print(target)

'''
output
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']
'''
  • 检测
  • `dset.CocoDetection(root='dir where images are', annFile='json annotation file', [transform, target_transform])

1.1.3 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])
    • self.classes: 用一个list保存类名
    • self.class_to_idx: 类名对应的索引
    • self.imgs: 保存(img_path, class)tuple的list

1.1.4 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)

1.2 torchvision.models

  • torchvision.models模块的子模块中包含以下模型结构:
    • AlexNet
    • VGG
    • ResNet
    • SqueezeNet
    • DenseNet
  • 可使用预训练模型,如:
torchvision.models.alexnet(pretrained=False, **kwargs)
torchvision.models.resnet18(pretrained=False, **kwargs)
torchvision.models.resnet34(pretrained=False, ** kwargs)
torchvision.models.resnet50(pretrained=False, ** kwargs)
torchvision.models.resnet101(pretrained=False, ** kwargs)
torchvision.models.resnet152(pretrained=False, ** kwargs)
torchvision.models.vgg11(pretrained=False, ** kwargs)
torchvision.models.vgg11_bn(** kwargs)
torchvision.models.vgg13(pretrained=False, ** kwargs)
torchvision.models.vgg13_bn(** kwargs)
torchvision.models.vgg16(pretrained=False, ** kwargs)
torchvision.models.vgg16_bn(** kwargs)
torchvision.models.vgg19(pretrained=False, ** kwargs)
torchvision.models.vgg19_bn(** kwargs)

1.3 torchvision.transforms

  • PIL.Image进行变换
  • 使用torchvision.transforms.Compose(transforms)将多个transform组合起来使用
  • transforms.CenterCrop(size):将给定PIL.Image进行中心切割,得到给定的sizesize可以是tupleInteger
  • transforms.RandomCrop(size, padding=0):切割中心点位置随机选取,size可以是tupleInteger
  • transforms.RandomHorizontalFlip(p=0.5):随机水平翻转
  • transforms.RandomSizedCrop(size, interpolation=2):先随机切,再resize成给定size大小。
  • transforms.Pad(padding, fill=0):给所有边用给定的值填充。padding:要填充多少像素
  • transforms.ToTensor():将一个取值范围是[0, 255]PIL.Imageshape(H, W, C)numpy.ndarray,转换成形状为[C, H, W],取值范围是[0, 1.0]torch.FloatTensor
  • transforms.Normalize(mean, std):给定均值与方差,正则化,即Normalized_image=(image-mean)/std
  • 通用变换:使用lambda作为转换器,transforms.Lambda(lambda)

1.4 torchvision.utils

  • utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scale_each=False)
    给定4D-mini-batch Tensor,形状为(B*C*H*W),或者一个a list of image,做成一个size(B / nrow, nrow)的子图集
    • normalize=True, 对图像像素归一化
    • range=(min, max),min和max是数字,则min, max用来规范化image
    • scale_each=True, 每个图片独立规范化。
  • utils.save_image(tensor, filename, nrow=8, padding=2, normalize=False, range=None, scale_each=False)
    将给定的Tensor保存成image文件,如果是mini-batch tensor,就用make-grid做成子图集再保存。

相关文章

  • torchvision指南

    torchvision指南 本笔记引用自PyTorch中文文档 1. torchvision介绍 torchvis...

  • Linux安装Pytorch+torchvision+torch

    一、Pytorch+torchvision conda install pytorch torchvision -...

  • TorchVision

    说明 很多基于Pytorch的工具集都非常好用,比如处理自然语言的torchtext,处理音频的torchaudi...

  • TorchVision

    说明 很多基于Pytorch的工具集都非常好用,比如处理自然语言的torchtext,处理音频的torchaudi...

  • pytorch数据集相关操作

    常用数据集读取 对于常用的数据集,可以通过torchvision.datasets读取,torchvision.d...

  • torchvision库

    torchvision是独立于pytorch的关于图像操作的一些方便工具库。 torchvision主要包括一下几...

  • pytorch学习第一天

    torchvision 为了方便加载以上五种数据库的数据,pytorch团队帮我们写了一个torchvision包...

  • Torch深度学习框架中一些常用API,BP反向传播通用代码

    Torchvision是独立于PyTorch的关于图像操作的一个工具库,目前包括六个模块: torchvision...

  • 2018-04-07

    PyTorch之torchvision torchvision是PyTorch框架中的一个非常重要的包,由三个子包...

  • torchvision包

    title: torchvision包date: 2018-07-09 10:13:47tags:- torchv...

网友评论

      本文标题:torchvision指南

      本文链接:https://www.haomeiwen.com/subject/jgvdmftx.html