pytorch之transforms.Compose()函数理解

torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision.transforms主要是用于常见的一些图形变换。以下是torchvision的构成:

1.torchvision.datasets: 一些加载数据的函数及常用的数据集接口;

2.torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;

3.torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;

4.torchvision.utils: 其他的一些有用的方法。

pytorch中的transforms模块中包含了很多种对图像数据进行变换的函数,这些都是在我们进行图像数据读入步骤中必不可少的。这个类的主要作用是串联多个图片变换的操作。

import torchvision

data_transform = torchvision.transforms.Compose([

 # 随机缩放裁剪 size 224*224

    torchvision.transforms.RandomResizedCrop(224),

 # 随机裁剪 size 224*224

    torchvision.transforms.RandomCrop(224),

 # 中心裁剪 size 224*224

    torchvision.transforms.CenterCrop(224),

 # 将图片的尺寸 Resize 到128*128 不裁剪

    torchvision.transforms.Resize((128,128)),

#以0.5的概率水平翻转给定的PIL图像

 torchvision.transforms.RandomHorizontalFlip(),

 # 转为张量并归一化到[0,1](是将数据除以255),且会把H*W*C会变成C *H *W

    torchvision.transforms.ToTensor(),

   # 数据归一化处理,3个通道中的数据整理理到[-1, 1]区间。3个通道,故有3个值。该[0.485, 0.456, 0.406]这一组平均值是从imagenet训练集中抽样算出来的。

   # ToTensor()的[0,1]只是范围改变了, 并没有改变分布,mean和std处理后可以让数据正态分布

    torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]),

    ])

你可能感兴趣的:(pytorch之transforms.Compose()函数理解)