megengine.functional.normalize#

normalize(inp, ord=None, axis=None, eps=1e-12)[源代码]#

返回在给定轴 axisinp Tensor 每一行进行 \(L_p\) 归一化后的结果。

对于一个形如 \((n_0, ..., n_{dim}, ..., n_k)\) 的 Tensor, 其每个 \(n_{dim}\) - axis 维度上的元素向量 \(v\) 将转化为:

\[v = \frac{v}{\max(\lVert v \rVert_p, \epsilon)}.\]
参数:
  • inp (Tensor) – 输入 Tensor。

  • ord (Optional[float]) – 应用于输入 Tensor 的数值幂的阶数。

  • axis (Optional[int]) – 进行规约操作的维度。如果该值为 None,则输入必须是一个向量。

  • eps (float) – 添加到分母的单个值,增加数值稳定性。

返回类型:

Tensor

返回:

归一化的输出张量。

seealso:: numpy.linalg.norm / norm

实际案例

>>> x = Tensor([[1, 2, 3], [4, 5, 6]])
>>> F.normalize(x, ord=2, axis=0)
Tensor([[0.2425 0.3714 0.4472]
 [0.9701 0.9285 0.8944]], device=xpux:0)
>>> F.normalize(x, ord=2, axis=1)
Tensor([[0.2673 0.5345 0.8018]
 [0.4558 0.5698 0.6838]], device=xpux:0)