关于torch.norm函数的笔记

先看一下它的参数:

norm(p='fro', dim=None, keepdim=False, dtype=None)
  • p: the order of norm. 一般来说指定 $p = 1, 2$ 等值表示 $(\sum_{i} \left | x_i \right |^{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

猜你喜欢

转载自www.cnblogs.com/dilthey/p/12358627.html