torch.norm()

求指定维度上的范数

torch.norm(input, p, dim, out=None,keepdim=False) → Tensor

函数参数

input (Tensor) – 输入张量
p (float) – 范数计算中的幂指数值
dim (int) – 缩减的维度,dim=0是对0维度上的一个向量求范数,返回结果数量等于其列的个数,也就是说有多少个0维度的向量,将得到多少个范数。dim=1同理
keepdim(bool)– 保持输出的维度 。当keepdim=False时,输出比输入少一个维度(就是指定的dim求范数的维度)。而keepdim=True时,输出与输入维度相同,仅仅是输出在求范数的维度上元素个数变为1。

例子

data=torch.Tensor([[1.,2.,3.],[4.,5.,6.]])
print(data)
print(data.norm(dim=1, keepdim=True))
data=data / data.norm(dim=1, keepdim=True)
print(data)
"""
tensor([[1., 2., 3.],
        [4., 5., 6.]])
tensor([[3.7417],
        [8.7750]])
tensor([[0.2673, 0.5345, 0.8018],
        [0.4558, 0.5698, 0.6838]])
"""
data=torch.Tensor([[1.,2.,3.],[4.,5.,6.]])
print(data)
print(data.norm(dim=0, keepdim=True))
data=data / data.norm(dim=0, keepdim=True)
print(data)
"""
tensor([[1., 2., 3.],
        [4., 5., 6.]])
tensor([[4.1231, 5.3852, 6.7082]])
tensor([[0.2425, 0.3714, 0.4472],
        [0.9701, 0.9285, 0.8944]])
"""
posted @ 2021-12-10 13:26  梦想家肾小球  阅读(319)  评论(0编辑  收藏  举报