mindscience.e3nn.o3.Norm

class mindscience.e3nn.o3.Norm(irreps_in, squared=False, dtype=mindspore.float32, ncon_dtype=mindspore.float32)[源代码]

计算直和张量中每个不可约表示(irrep)的范数(长度)。 给定一个在多个 irreps 的直和下变换的张量,本模块返回一个张量,其各个分量为每个 irrep 的范数。例如,若输入包含三个向量(3x1o irreps),则输出为一个 3 分量张量,其中每个分量为对应向量的欧氏范数。

参数:
  • irreps_in (Union[str, Irrep, Irreps]) - 输入的 Irreps。

  • squared (bool, 可选) - 是否计算范数的平方。默认值:False

  • dtype (mindspore.dtype, 可选) - 结果数据类型。默认值:mindspore.float32

  • ncon_dtype (mindspore.dtype, 可选) - 用于ncon的数据类型。默认值:mindspore.float32

输入:
  • v (Tensor) - 形状为 \((..., irreps\_in.dim)\) 的张量。

输出:
  • output (Tensor) - 形状为 \((..., irreps\_out.dim)\) 的张量。

样例:

>>> import mindspore as ms
>>> import numpy as np
>>> from mindscience.e3nn.o3 import Norm
>>> n = Norm('3x1o')
>>> v = ms.Tensor(np.linspace(1., 2., n.irreps_in.dim), dtype=ms.float32)
>>> n(v).shape
(1, 3)