PyTorch学习(二):Transform

PyTorch文档

Introduction

torchvision.transforms

前言:Transforms是常见的图像变换工具。他们可以通过compose函数被连接起来

Transformation接受tensor图像也接受tensor的batch类型。Tensor类型:CHW,Tensor的batch类型:BCHW

Tensor的范围由Tensor的类型定义,对于float类型,数值在[0, 1)之间;对于整型integer,范围为[0, MAX_DTYPE]

注意:对于torch的随机种子和python的随机种子将会产生不同的结果

# Previous versions
# import random
# random.seed(12)

# Now
import torch
torch.manual_seed(17)

Composition of transforms

Compose

torchvision.transforms.Compose(transforms)

将几个不同的transforms组合起来

transforms.Compose([
    transforms.CenterCrop(10),
    transforms.PILToTensor(),
    transforms.ConvertImageDtype(torch.float),
])

Transforms on PIL Image and Tensor

Resize

torchvision.transforms.Resize(size, interpolation, max_size=None, antialias=None)

将图片大小转换到给定的大小

  • size - 输出图像的大小
  • interpolation - 插值方法,默认为双线性插值

RandomHorizontalFlip

torchvision.transforms.RandomHorizontalFlip(p=0.5)

将图片以给定的概率随机翻转

Functional Transforms

函数可以为转换的过程提供细粒度控制。与上面的转换相反,函数转换不提供随机数生成器,即随机种子对其无效,你需要对其转换的方式来指定参数

to_tensor

torchvision.transforms.functional.to_tensor(pic)

将PIL Image或者numpy.ndarray转化为tensor
返回:tensor

  • pic - PIL Image或者numpy.ndarray

pad

torchvision.transforms.functional.pad(img, padding, fill, padding_mode)

将输入图片的所有边进行填充
返回:PIL Image or Tensor

  • img(PIL Image or Tensor) - 填充的图像
  • padding(int or sequence) - 如果是int,对所有边都进行填充。如果是两个值,对左右和上下分别填充。如果是四个值,分别填充左上右下
  • fill - Pixel fill value for constant fill. Default is 0.如果是一个长度为3的元祖,则分别填充RGB三个值,只有在padding_mode为constant的时候使用
  • padding_mode - 填充类型,默认为constant
    • constant:填充特定的值,由fill变量指定
    • edge:由图像边缘的值进行填充
    • reflect:以边为对称轴进行填充,不重复边上的值。例如以2填充[1,2,3,4]会得到[3,2,1,2,3,4,3,2]
    • symmetric:以图像边的最后一个值填充。例如以2填充[1,2,3,4]会得到[3,2,1,2,3,4,3,2]

adjust_gamma

torchvision.transforms.functional.adjust_gamma(img, gamma, gain:float=1)

对一张图片进行gamma校正
返回:gamma校正的图片

I o u t = 255 × g a i n × ( I i n 255 ) γ I_{out} = 255\times gain\times (\frac{I_{in}}{255})^{\gamma} Iout=255×gain×(255Iin)γ

  • img - PIL Image or Tensor
  • gamma - float. gamma大于1会让阴影变暗,gamma小于1会让暗的区域变亮
  • gain - 乘积因子

adjust_saturation

torchvision.transforms.functional.adjust_saturation(img, saturation_factor:float)

调整图片的饱满度
返回:PIL Image or Tensor

  • img - PIL Image or Tensor
  • saturation_factor - float. 调整饱满度。黑白图:0,不变:1,增强饱满度:2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值