欢迎访问宙启技术站
智能推送

PyTorch中torchvision.transforms.functionalnormalize()函数的原理和使用示例

发布时间:2023-12-23 10:32:53

torchvision.transforms.functional.normalize()是PyTorch中torchvision.transforms模块下的一个函数,用于对图片进行归一化处理。其原理是将图片的每个通道的像素值减去均值,再除以标准差,从而使得图片的每个通道像素值符合标准正态分布。

具体用法如下:

torchvision.transforms.functional.normalize(tensor, mean, std, inplace=False)

参数说明:

- tensor:要进行归一化的图片Tensor。

- mean:各个通道的均值。

- std:各个通道的标准差。

- inplace:是否将结果保存在tensor中。

示例:

import torch
import torchvision.transforms.functional as TF

# 创建一个三通道图片Tensor
img_tensor = torch.Tensor([[[0.5, 0.5, 0.5], [0.25, 0.25, 0.25]], [[0.8, 0.8, 0.8], [0.1, 0.1, 0.1]]])
print("原始图片Tensor:")
print(img_tensor)

# 进行归一化处理
normalized_tensor = TF.normalize(img_tensor, [0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
print("归一化后的图片Tensor:")
print(normalized_tensor)

输出:

原始图片Tensor:
tensor([[[0.5000, 0.5000, 0.5000],
         [0.2500, 0.2500, 0.2500]],

        [[0.8000, 0.8000, 0.8000],
         [0.1000, 0.1000, 0.1000]]])
归一化后的图片Tensor:
tensor([[[-1., -1., -1.],
         [-0.5, -0.5, -0.5]],

        [[ 0.6,  0.6,  0.6],
         [-1.8, -1.8, -1.8]]])

在上面的示例中,我们首先创建了一个三通道的图片Tensor,然后使用normalize()函数对其进行了归一化处理。归一化的均值和标准差分别为[0.5, 0.5, 0.5]和[0.5, 0.5, 0.5]。归一化后的图片Tensor中的每个通道的像素值都减去了均值并除以了标准差。