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)


相关文章
|
18天前
|
存储 物联网 PyTorch
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
**Torchtune**是由PyTorch团队开发的一个专门用于LLM微调的库。它旨在简化LLM的微调流程,提供了一系列高级API和预置的最佳实践
124 59
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
|
3天前
|
并行计算 监控 搜索推荐
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
当处理大规模图数据时,复杂性难以避免。PyTorch-BigGraph (PBG) 是一款专为此设计的工具,能够高效处理数十亿节点和边的图数据。PBG通过多GPU或节点无缝扩展,利用高效的分区技术,生成准确的嵌入表示,适用于社交网络、推荐系统和知识图谱等领域。本文详细介绍PBG的设置、训练和优化方法,涵盖环境配置、数据准备、模型训练、性能优化和实际应用案例,帮助读者高效处理大规模图数据。
24 5
|
3月前
|
并行计算 Ubuntu PyTorch
Ubuntu下CUDA、Conda、Pytorch联合教程
本文是一份Ubuntu系统下安装和配置CUDA、Conda和Pytorch的教程,涵盖了查看显卡驱动、下载安装CUDA、添加环境变量、卸载CUDA、Anaconda的下载安装、环境管理以及Pytorch的安装和验证等步骤。
526 1
Ubuntu下CUDA、Conda、Pytorch联合教程
|
6月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(二十)(4)
PyTorch 2.2 中文官方教程(二十)
120 0
PyTorch 2.2 中文官方教程(二十)(4)
|
6月前
|
Android开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(2)
PyTorch 2.2 中文官方教程(二十)
104 0
PyTorch 2.2 中文官方教程(二十)(2)
|
6月前
|
iOS开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(1)
PyTorch 2.2 中文官方教程(二十)
106 0
PyTorch 2.2 中文官方教程(二十)(1)
|
6月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十九)(3)
PyTorch 2.2 中文官方教程(十九)
58 0
PyTorch 2.2 中文官方教程(十九)(3)
|
6月前
|
异构计算 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十九)(2)
PyTorch 2.2 中文官方教程(十九)
93 0
PyTorch 2.2 中文官方教程(十九)(2)
|
6月前
|
PyTorch 算法框架/工具 并行计算
PyTorch 2.2 中文官方教程(二十)(3)
PyTorch 2.2 中文官方教程(二十)
166 0
|
6月前
|
PyTorch 算法框架/工具 并行计算
PyTorch 2.2 中文官方教程(十九)(4)
PyTorch 2.2 中文官方教程(十九)
66 0