torch.linalg.vector_norm¶
- torch.linalg.vector_norm(x, ord=2, dim=None, keepdim=False, *, dtype=None, out=None) Tensor ¶
计算向量范数。
如果
x
是复数值,则计算x
.abs() 的范数支持输入浮点型、双精度浮点型、复浮点型和复双精度浮点型数据类型。
此函数不一定将多维
x
视为向量批次,而是:如果
dim
为 None,则在计算范数之前,x
将被展平。如果
dim
是整数或元组,则范数将在这些维度上计算,其他维度将被视为批次维度。
这种行为是为了与
torch.linalg.norm()
保持一致。定义要计算的向量范数。以下范数被支持:
ord
向量范数
2(默认)
2-范数(见下文)
无穷
max(绝对值(x))
-无穷大
min(绝对值(x))
0
sum(x 不等于 0)
其他整数或浮点数
sum(abs(x)^{ord})^{(1 / ord)}
其中 inf 指的是 float(‘inf’), NumPy 的 inf 对象,或任何等效对象。
dtype
可用于以更精确的数据类型执行计算。它与调用linalg.vector_norm(x.to(dtype))
在语义上等价,但在某些情况下更快。参见
torch.linalg.matrix_norm()
计算矩阵范数。- 参数:
x (Tensor) – 张量,默认情况下是展开的,但可以使用
dim
. 来控制这种行为。(注意:关键字参数 input 也可以用作 x 的别名。)ord (int, float, inf, -inf, 'fro', 'nuc', 可选) – 范数的阶。默认:2
dim (int, Tuple[int], 可选) – 计算范数的维度。当
dim
= None 时,请参阅上述行为。默认:Nonekeepdim (bool, 可选) – 如果设置为 True,则减少的维度在结果中保留为大小为一的维度。默认:False
- 关键字参数:
out(张量,可选)- 输出张量。如果为 None 则忽略。默认:None。
dtype (
torch.dtype
,可选) – 用于执行累加和返回操作的数据类型。如果指定,则在执行操作之前将x
转换为dtype
,返回的张量类型将是dtype
如果是实数,如果是复数,则将是其实数对应类型。如果x
是复数,则dtype
可以是复数,否则它必须是实数。x
应该可以转换为dtype
而不发生缩窄。默认:None
- 返回值:
实值张量,即使
x
是复数。
示例:
>>> from torch import linalg as LA >>> a = torch.arange(9, dtype=torch.float) - 4 >>> a tensor([-4., -3., -2., -1., 0., 1., 2., 3., 4.]) >>> B = a.reshape((3, 3)) >>> B tensor([[-4., -3., -2.], [-1., 0., 1.], [ 2., 3., 4.]]) >>> LA.vector_norm(a, ord=3.5) tensor(5.4345) >>> LA.vector_norm(B, ord=3.5) tensor(5.4345)