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,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]),

    ])

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。