Pytorch教程[03]transforms(一)

简介: Pytorch教程[03]transforms

一.torchvision:计算机视觉工具包


torchvision.transforms : 常用的图像预处理方法

torchvision.datasets : 常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等

torchvision.model : 常用的模型预训练,AlexNet,VGG, ResNet,GoogLeNet等

二.数据增强


数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力

image.png

三.transforms—裁剪


torchvision.transforms : 常用的图像预处理方法

• 数据中心化

• 数据标准化

• 缩放

• 裁剪

• 旋转

• 翻转 • 填充

• 噪声添加

• 灰度变换

• 线性变换

• 仿射变换

• 亮度、饱和度及对比度变换

image.png

image.png


3.1 transforms.Normalize()


功能:逐channel的对图像进行标准化

output = (input - mean) / std

• mean:各通道的均值

• std:各通道的标准差

• inplace:是否原地操作

transforms.Normalize(mean,
             std,
           inplace=False)

3.2 transforms.CenterCrop()


功能:从图像中心裁剪图片

• size:所需裁剪图片尺寸

3.3 transforms.RandomCrop()


功能:从图片中随机裁剪出尺寸为size的图片

• size:所需裁剪图片尺寸

• padding:设置填充大小

当为a时,上下左右均填充a个像素

当为(a, b)时,上下填充b个像素,左右填充a个像素

当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d

• pad_if_need:若图像小于设定size,则填充

• padding_mode:填充模式,有4种模式


  1. constant:像素值由fill设定
  2. edge:像素值由图像边缘像素决定
  3. reflect:镜像填充,最后一个像素不镜像,eg:[1,2,3,4] → [3,2,1,2,3,4,3,2]
  4. symmetric:镜像填充,最后一个像素镜像,eg:[1,2,3,4] → [2,1,1,2,3,4,4,3]

• fill:constant时,设置填充的像素值

transforms.RandomCrop(size, 
            padding=None, 
            pad_if_needed=False, 
            fill=0, 
            padding_mode='constant')

3.4 RandomResizedCrop()


功能:随机大小、长宽比裁剪图片

• size:所需裁剪图片尺寸

• scale:随机裁剪面积比例, 默认(0.08, 1)

• ratio:随机长宽比,默认(3/4, 4/3)

• interpolation:插值方法


PIL.Image.NEAREST

PIL.Image.BILINEAR

PIL.Image.BICUBIC

3.5 FiveCrop()


transforms.FiveCrop(size)

3.6 TenCrop()


transforms.FiveCrop(size)

transforms.TenCrop(size,

vertical_flip=False)

功能:在图像的上下左右以及中心裁剪出尺

寸为size的5张图片,TenCrop对这5张图片

进行水平或者垂直镜像获得10张图片

• size:所需裁剪图片尺寸

• vertical_flip:是否垂直翻转

transforms.TenCrop( size, 
          vertical_flip=False)

四.transforms—翻转、旋转


4.1 RandomHorizontalFlip() RandomVerticalFlip()


功能:依概率水平(左右)或垂直(上下)翻转图片

•p:翻转概率

RandomHorizontalFlip(p=0.5)
RandomVerticalFlip(p=0.5)

4.2 RandomRotation()


功能:随机旋转图片

• degrees:旋转角度

当为a时,在(-a,a)之间选择旋转角度

当为(a, b)时,在(a, b)之间选择旋转角度

• resample:重采样方法

• expand:是否扩大图片,以保持原图信息

• center:旋转点设置,默认中心旋转

3.RandomRotation RandomRotation(degrees, 
                resample=False, 
                expand=False, 
                center=None)

五.transforms—图像变换


5.1 Pad()


功能:对图片边缘进行填充

• padding:设置填充大小

当为a时,上下左右均填充a个像素

当为(a, b)时,上下填充b个像素,左右填充a个像素

当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d

• padding_mode:填充模式,有4种模式,constant、edge、reflect和symmetric

• fill:constant时,设置填充的像素值,(R, G, B) or (Gray)

transforms.Pad(padding, 
         fill=0, 
         padding_mode='constant')

5.2 ColorJitter


功能:调整亮度、对比度、饱和度和色相

• brightness:亮度调整因子

当为a时,从[max(0, 1-a), 1+a]中随机选择

当为(a, b)时,从[a, b]中 • contrast:对比度参数,同brightness

• saturation:饱和度参数,同brightness

• hue:色相参数,当为a时,从[-a, a]中选择参数,注: 0<= a <= 0.5

当为(a, b)时,从[a, b]中选择参数,注:-0.5 <= a <= b <= 0.5

transforms.ColorJitter(brightness=0, 
             contrast=0, 
             saturation=0, 
             hue=0)

5.3 Grayscale


RandomGrayscale(num_output_channels,

p=0.1)


5.4 RandomGrayscale


功能:依概率将图片转换为灰度图

• num_ouput_channels:输出通道数

只能设1或3

• p:概率值,图像被转换为灰度图的概率

Grayscale(num_output_channels)


相关文章
|
28天前
|
Android开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(2)
PyTorch 2.2 中文官方教程(二十)
47 0
PyTorch 2.2 中文官方教程(二十)(2)
|
28天前
|
iOS开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(1)
PyTorch 2.2 中文官方教程(二十)
49 0
PyTorch 2.2 中文官方教程(二十)(1)
|
PyTorch 算法框架/工具 并行计算
PyTorch 2.2 中文官方教程(十九)(4)
PyTorch 2.2 中文官方教程(十九)
31 0
|
28天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(4)
PyTorch 2.2 中文官方教程(十八)
55 1
|
28天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(3)
PyTorch 2.2 中文官方教程(十八)
34 1
PyTorch 2.2 中文官方教程(十八)(3)
|
28天前
|
并行计算 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十七)(4)
PyTorch 2.2 中文官方教程(十七)
30 2
PyTorch 2.2 中文官方教程(十七)(4)
|
28天前
|
PyTorch 算法框架/工具 机器学习/深度学习
PyTorch 2.2 中文官方教程(十七)(2)
PyTorch 2.2 中文官方教程(十七)
38 1
PyTorch 2.2 中文官方教程(十七)(2)
|
28天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十五)(1)
PyTorch 2.2 中文官方教程(十五)
50 1
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十四)(4)
PyTorch 2.2 中文官方教程(十四)
71 1
PyTorch 2.2 中文官方教程(十四)(4)
|
28天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十四)(2)
PyTorch 2.2 中文官方教程(十四)
54 1