当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch vector_norm用法及代码示例


本文简要介绍python语言中 torch.linalg.vector_norm 的用法。

用法:

torch.linalg.vector_norm(A, ord=2, dim=None, keepdim=False, *, dtype=None, out=None) → Tensor

参数

  • A(Tensor) -张量,默认为展平,但可以使用 dim 控制此行为。

  • ord(int,float,inf,-inf,'fro','nuc',可选的) - 规范的顺序。默认:2

  • dim(int,元组[int],可选的) - 计算范数的维度。见上面的行为时dim= None.默认:None

  • keepdim(bool,可选的) -如果设置为 True ,则减少的维度将作为大小为 1 的维度保留在结果中。默认值:False

关键字参数

  • out(Tensor,可选的) -输出张量。如果 None 则忽略。默认值:None

  • dtype(torch.dtype, 可选的) -如果指定,则在执行操作之前输入张量将转换为 dtype ,并且返回的张量的类型将为 dtype 。默认值:None

返回

一个实值张量,即使 A 是复数。

计算向量范数。

如果 A 是复数值,则计算 A .abs() 的范数

支持 float、double、cfloat 和 cdouble dtypes 的输入。

此函数不一定将多维 A 视为一批向量,而是:

  • 如果 dim = NoneA 将在计算范数之前被展平。

  • 如果 diminttuple ,则将在这些维度上计算范数,而其他维度将被视为批量维度。

此行为是为了与 torch.linalg.norm() 保持一致。

ord 定义计算的向量范数。支持以下规范:

ord

向量范数

2(默认)

2 -norm(见下文)

inf

max(abs(x))

-inf

min(abs(x))

0

sum(x != 0)

其他 intfloat

sum(abs(x)^{ord})^{(1 / ord)}

其中 inf 指的是 float(‘inf’) 、NumPy 的 inf 对象或任何等效对象。

例子:

>>> 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)

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.linalg.vector_norm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。