pytorch之transforms.Compose()函数理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch之transforms.Compose()函数理解相关的知识,希望对你有一定的参考价值。

参考技术A 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]),

    ])

以上是关于pytorch之transforms.Compose()函数理解的主要内容,如果未能解决你的问题,请参考以下文章

pytorch常见问题之cpu占满

pytorch之transforms.Compose()函数理解

Pytorch之线性代数

Pytorch之图像分割(多目标分割,Multi Object Segmentation)

PyTorch之人工智能学习路线

[源码解析] PyTorch 分布式之弹性训练---Rendezvous 引擎