pytorch 中 transform
pytorch
本文字数:692 字 | 阅读时长 ≈ 3 min

pytorch 中 transform

pytorch
本文字数:692 字 | 阅读时长 ≈ 3 min

PyTorch 文档

1. 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)

2. Composition of transforms

2.1 Compose

torchvision.transforms.Compose(transforms)

将几个不同的 transforms 组合起来

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

3. Transforms on PIL Image and Tensor

3.1 Resize

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

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

3.2 RandomHorizontalFlip

torchvision.transforms.RandomHorizontalFlip(p=0.5)

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

4. Functional Transforms

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

4.1 to_tensor

torchvision.transforms.functional.to_tensor(pic)

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

4.2 pad

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

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

4.3 adjust_gamma

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

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

$$
I_{out} = 255\times gain\times (\frac{I_{in}}{255})^{\gamma}
$$

4.4 adjust_saturation

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

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

9月 09, 2024