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中的每个通道的像素值都减去了均值并除以了标准差。
