Pytorch transform

Pytorch

torchvision介绍

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

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

​ torchvison.models :包含常用的模型结构(含预训练模型),例如AlexNet , VGG, ResNet

​ torchvison.transforms: 常用的图片变换,例如裁剪,旋转等

​ torchvison.utils :其他一些有用的方法

1、transforms函数解析:torchvision.transforms 是pytorch中的图像预处理包,一般用Compose把多个图片变换步骤整合到一起。(实际是个列表,而这个列表里面的元素就是你想要执行的transform操作。Compose()类会将transforms列表里面的transform操作进行遍历。)如下所示

  • import torch
    import torchvision.transforms as transforms
    torch_transforms = transforms.Compose(
        [
            transforms.ToTensor(),# (CHW)
            transforms.Normalsize([0.5, 0.5,0.5],[0.5, 0.5,0.5])# CHW的mean 和std
        ]
    )
    

    transforms中的函数:

Resize 把给定的图片resize到given size
Normalize 用均值和标准差归一化张量图像(对于网络模型训练等,是为了加速神经网络训练收敛,以及保证程序运行时收敛加快)
ToTensor convert a PIL image to tensor (HWC) in range [0,255] to a torch.Tensor(CHW) in the range [0.0,1.0]
CenterCrop 在图片的中间区域进行裁剪
RandomCrop 在一个随机位置进行裁剪
FiceCrop 把图像裁剪为四个角和一个中心
RandomResizeCrop 将PIL图像裁剪成任意大小和纵横比
ToPILImage 将张量改为PIL Image
RandomHorizontalFlip 以0.5的概率水平翻转给定的PIL图像
RandomVerticalFlip 以0.5的概率竖直翻转给定的图像
Grayscale 将图像转换为灰度图像
RandomGrayscale 将图像以一定的概率转换为灰度图像
Color Jitter 随机改变图像的亮度对比度和饱和度

transform.Normalize()是怎么工作的呢?以上面代码为例,

  • ToTensor()能够把灰度范围从0~255变换到0-1之间
  • transform.Normalize()则把0-1变换到(-1,1)

具体地说,对每个通道而言,Normalize执行以下操作:
image=(image-mean)/std
其中mean和std分别通过(0.5,0.5,0.5)和(0.5,0.5,0.5)进行指定。原来的0-1最小值0则变成(0-0.5)/0.5=-1,而最大值1则变成(1-0.5)/0.5=1.

你可能感兴趣的:(pytorch,pytorch,深度学习,计算机视觉)