mindspore.nn.Norm
- class mindspore.nn.Norm(axis=(), keep_dims=False)[源代码]
计算向量的范数,目前包括欧几里得范数,即 \(L_2\)-norm。
\[norm(x) = \sqrt{\sum_{i=1}^{n} (x_i^2)}\]- 参数:
axis (Union[tuple, int]) - 指定计算向量范数的轴。默认值:()。
keep_dims (bool) - 如果为True,则 axis 中指定轴的维度大小为1。否则,axis 的维度将从输出shape中删除。默认值:False。
- 输入:
x (Tensor) - 输入任意维度Tensor,不为空。数据类型应为float16或float32。
- 输出:
Tensor,如果’keep_dims’为True,则将保留’axis’指定的维度且为1;否则,将移除’axis’中指定的维度。数据类型与 x 相同。
- 异常:
TypeError - axis 既不是int也不是tuple。
TypeError - keep_dims 不是bool。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> net = nn.Norm(axis=0) >>> x = Tensor(np.array([[4, 4, 9, 1], [2, 1, 3, 6]]), mindspore.float32) >>> print(x.shape) (2, 4) >>> output = net(x) >>> print(output) [4.472136 4.1231055 9.486833 6.0827627] >>> print(output.shape) (4,) >>> net = nn.Norm(axis=0, keep_dims=True) >>> x = Tensor(np.array([[4, 4, 9, 1], [2, 1, 3, 6]]), mindspore.float32) >>> print(x.shape) (2, 4) >>> output = net(x) >>> print(output) [4.472136 4.1231055 9.486833 6.0827627] >>> print(output.shape) (1, 4) >>> net = nn.Norm(axis=1) >>> x = Tensor(np.array([[4, 4, 9, 1], [2, 1, 3, 6]]), mindspore.float32) >>> print(x.shape) (2, 4) >>> output = net(x) >>> print(output) [10.677078 7.071068] >>> print(output.shape) (2,)