mindscience.e3nn.o3.SphericalHarmonics

class mindscience.e3nn.o3.SphericalHarmonics(irreps_out, normalize, normalization='integral', irreps_in=None, dtype=mindspore.float32)[源代码]

将三维笛卡尔向量 (x, y, z) 映射到复值球面谐波基函数 \(Y_l^m(\hat{x})\) 的层。可返回任意指定阶数 l,并自动处理奇偶性(偶/奇)选择规则。

参数:
  • irreps_out (Union[str, Irrep, Irreps]) - 球面谐波基函数输出的不可约表示。

  • normalize (bool) - 如果为 True,则范数使得 \(\int |Y|^2 = 1\)。注意:现在强制要求 normalize=True

  • normalization (str, 可选) - {'integral', 'component', 'norm'},归一化方式。默认值:'integral'

  • irreps_in (Union[str, Irrep, Irreps], 可选) - 输入的 Irreps。默认值:None

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

输入:
  • x (Tensor) - 构造球面谐波的张量。形状为 \((..., 3)\) 的张量。

输出:
  • output (Tensor) - 球面谐波 \(Y^l(x)\),张量形状为 \((..., 2l+1)\)

异常:
  • ValueError - 如果 normalization 不在 {'integral', 'component', 'norm'} 中。

  • ValueError - 如果球谐函数的 irreps_in 既不是向量 (1x1o) 也不是伪向量 (1x1e)。

  • ValueError - 如果球谐函数的 irreps_outlpirreps_in 不一致。输出的奇偶性应为 p = {input_p**l}。

  • NotImplementedError - 如果 l 大于 11。

样例:

>>> from mindscience.e3nn.o3 import SphericalHarmonics
>>> from mindspore import ops
>>> sh = SphericalHarmonics(0, False, normalization='component')
>>> x = ops.rand(2,3)
>>> m = sh(x)
[[1.]
[1.]]