fn

normalize

Tensor
normalize(x: Tensor, p: float = 2.0, dim: int = 1, eps: float = 1e-12)
source

Normalize a tensor to unit LpL_p norm along a dimension.

Parameters

xTensor
Input tensor.
pfloat= 2.0
Exponent of the norm (default: 2.0 for Euclidean norm).
dimint= 1
Dimension along which to normalize (default: 1).
epsfloat= 1e-12
Small value added to the denominator for numerical stability.

Returns

Tensor

Normalized tensor with unit LpL_p norm along dim.

Notes

x^i=ximax ⁣(xp,ϵ),xp=(ixip)1/p\hat{x}_i = \frac{x_i}{\max\!\big(\|x\|_p,\, \epsilon\big)}, \qquad \|x\|_p = \Big(\sum_i |x_i|^p\Big)^{1/p}

along the chosen dimension. The eps clamp avoids division by zero when the slice is all zeros. Use p=2 for cosine-similarity style embeddings, p=1 for probability-simplex projection-like behaviour, and p=inf for max-norm clipping.

Examples

>>> x = lucid.tensor([[3.0, 4.0]])
>>> F.normalize(x, p=2, dim=1)
tensor([[0.6, 0.8]])