mindsponge.common.vecs_robust_normalize

mindsponge.common.vecs_robust_normalize(v, epsilon=1e-08)[源代码]

向量l2范数归一化。

\[\begin{split}\begin{split} &v=(x1,x2,x3) \\ &l2\_norm=\sqrt{x1*x1+x2*x2+x3*x3+epsilon} \\ &result=(x1/l2\_norm, x2/l2\_norm, x3/l2\_norm) \\ \end{split}\end{split}\]
参数:
  • v (Tuple) - 输入向量,\((x,y,z)\) 其中 x,y,z 是标量或 Tensor,若为Tensor其shape相同。

  • epsilon (float) - 极小值,防止返回值为0,默认为1e-8。

返回:

Tuple, 返回二范数归一化后的向量,长度为3,其中每个元素shape与v中的元素相同。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor
>>> from mindspore import dtype as mstype
>>> from mindsponge.common.geometry import vecs_robust_normalize
>>> x= Tensor(np.ones(256), mstype.float32)
>>> y= Tensor(np.ones(256), mstype.float32)
>>> z= Tensor(np.ones(256), mstype.float32)
>>> result=vecs_robust_normalize((x,y,z))
>>> print(len(result))
>>> print(result[0].shape)
>>> print(result[1].shape)
>>> print(result[2].shape)
3
(256,)
(256,)
(256,)