在 PyTorch 中计算向量的范数、1-范数和 2-范数的正确方法是什么?

Pen*_*uin 3 python vector pytorch

我有一个矩阵:

\n
t = torch.rand(2,3)\nprint(t)\n>>>tensor([[0.5164, 0.3651, 0.0882],\n        [0.4488, 0.9824, 0.4067]])\n
Run Code Online (Sandbox Code Playgroud)\n

我正在关注这个规范简介,并想在 PyTorch 中尝试一下。

\n

看起来像:

\n
    \n
  • norm向量的大小或长度是一个非负数,描述向量在空间中的范围,有时称为向量\xe2\x80\x99s 大小或范数”
  • \n
  • 1-Norm是“绝对向量值的总和,其中标量的绝对值使用符号 |a1|。实际上,范数是距向量空间原点的曼哈顿距离的计算。”
  • \n
  • 2-Norm是“向量坐标距向量空间原点的距离。L2 范数计算为向量值平方和的平方根。”
  • \n
\n

我目前只知道这个:

\n
print(torch.linalg.norm(t, dim=1))\n>>>tensor([0.6385, 1.1541])\n
Run Code Online (Sandbox Code Playgroud)\n

但我无法从这里弄清楚三个(范数,1-范数,2-范数)中的哪一个计算出这三个(范数、1-范数、2-范数)中的哪一个,以及如何计算其余的

\n

Iva*_*van 15

要计算 0-、1-和 2-范数,您可以使用torch.linalg.norm,并分别提供ord参数(012)。或者直接在张量上:Tensor.norm,带有p参数。以下是三个变体:手动计算、使用torch.linalg.norm和 使用Tensor.norm