先看一下它的参数:
norm(p='fro', dim=None, keepdim=False, dtype=None)
- p: the order of norm. 一般来说指定 $p = 1, 2$ 等值表示 $(sum_{i} left | x_i ight |^{p})^{(1/p)}$,更详细的描述可以参考:
- dim: 缩减的维度,dim=0 是对 0 维度上的一个向量求范数,返回结果数量等于其列的个数,也就是说有多少个0维度的向量, 将得到多少个范数。dim=1同理。
- keepdim: 保持输出的维度。当 keepdim=False 时,输出比输入少一个维度(就是 dim 所指定的那一个被缩减的维度)。
- dtype: 用以指定结果 tensor 的数据类型。
参考以下示例代码:
x = torch.tensor([[-1.0, 2.0, 3.0], [3.5, -4.0, 1.0]])
print(x, x.dtype)
a = x.norm(1, dim=0, dtype=torch.float64)
print(a, a.dtype)
b = x.norm(1, dim=1)
print(b, b.dtype)
c = x.norm(2, dim=1)
print(c, c.dtype)
结果:
tensor([[-1.0000, 2.0000, 3.0000],
[ 3.5000, -4.0000, 1.0000]]) torch.float32
tensor([4.5000, 6.0000, 4.0000], dtype=torch.float64) torch.float64
tensor([6.0000, 8.5000]) torch.float32
tensor([3.7417, 5.4083]) torch.float32