torch中的normalize的功能是将一个向量单位化,比如一个向量为:
x = [1,2,3,4]
则标准化过程为先求出这个向量的二范数,然后将每一个维度上面的值都除以这个二范数。
import torch.nn.functional as F
import torch
x = torch.randn(1,3)
print(x)
z = F.normalize(x)
print(z)
运行结果为:
tensor([[-1.0407, -1.1139, -0.9541]])
设一个向量为x 则x.norm()返回的是这个向量的二范数
import torch
x = torch.tensor([1.0,2.0,3.0])
print(x.norm())
输出为:
tensor(3.7417)
所以如果要对一个向量进行单位化,可以直接F.normalize(x) ,也可以x = x / x.norm()