【发布时间】:2021-07-22 18:17:02
【问题描述】:
我有一个矩阵:
t = torch.rand(2,3)
print(t)
>>>tensor([[0.5164, 0.3651, 0.0882],
[0.4488, 0.9824, 0.4067]])
我正在关注this 规范的介绍,并想在 PyTorch 中尝试一下。
好像是这样的:
-
向量的
norm是“向量的大小或长度是描述向量在空间中的范围的非负数,有时也称为向量的大小或范数” -
1-Norm是“绝对向量值的总和,其中标量的绝对值使用符号 |a1|。实际上,范数是计算距向量空间原点的曼哈顿距离。”李> -
2-Norm是“向量坐标到向量空间原点的距离。L2范数计算为向量平方和的平方根。”
我目前只知道这个:
print(torch.linalg.norm(t, dim=1))
>>>tensor([0.6385, 1.1541])
但我不知道它正在计算来自here 的三个(范数、1-范数、2-范数)中的哪一个,以及如何计算其余的
【问题讨论】:
-
我认为是函数中的
ord参数。尝试print(torch.linalg.norm(t, dim=1 , ord = 1))用于 1-norm 和print(torch.linalg.norm(t, dim=1 , ord = 2))用于 2-norm 看看它是否有效。 -
我认为这行得通!
norm呢? -
不要传递任何参数,这应该给你规范。这个
print(torch.linalg.norm(t, dim=1 , ord = None))或这个print(torch.linalg.norm(t, dim=1))应该可以工作。