我有一个矩阵:
t = torch.rand(2,3)
print(t)
>>>tensor([[0.5164, 0.3651, 0.0882],
[0.4488, 0.9824, 0.4067]])
我正在遵循这对规范的介绍,并希望在PyTorch中尝试。
似乎:
norm
是“向量的大小或长度是描述空间中向量范围的非负数,有时被称为向量的大小或范数”1-Norm
是“绝对向量值之和,其中标量的绝对值使用表示法x-A1。实际上,范数是从向量空间原点到曼哈顿距离的计算。”2-Norm
是“向量坐标与向量空间原点的距离,L2范数是平方向量值之和的平方根”。我目前只知道这一点:
print(torch.linalg.norm(t, dim=1))
>>>tensor([0.6385, 1.1541])
但是我不知道这里的三个范数(范数、1范数、2范数)中哪一个在计算,以及如何计算其余的。
发布于 2021-07-22 18:46:41
要计算0-、1-和2-范数,可以使用torch.linalg.norm
,分别提供ord
参数(0
、1
和2
)。或者直接放在张量上:Tensor.norm
,带有p
参数。以下是三个变体:手动计算、使用torch.linalg.norm
和使用Tensor.norm
。
发布于 2021-07-22 18:45:09
要计算不同顺序的范数,只需用所需的顺序传递一个ord
参数即可。例如:
torch.linalg.norm(t, dim=1, ord = 0)
应该为norm工作。torch.linalg.norm(t, dim=1, ord = 1)
应该适用于1-Norm.torch.linalg.norm(t, dim=1, ord = 2)
应该适用于2-Norm.
诸若此类。https://stackoverflow.com/questions/68489765
复制相似问题