mindscience.e3nn.nn.FullyConnectedNet

class mindscience.e3nn.nn.FullyConnectedNet(h_list, act=None, out_act=False, init_method='normal', dtype=mindspore.float32)[源代码]

带有标量归一化激活的全连接神经网络。 通过堆叠多层稠密层,并对激活函数进行自动归一化,以在前向/反向传播过程中保持稳定的信号幅值。

参数:
  • h_list (list[int]) - 用于密集层的输入、内部和输出维度的列表。

  • act (Func,可选) - 将自动归一化的激活函数。默认值:None

  • out_act (bool,可选) - 是否对输出应用激活函数。默认值:False

  • init_method (Union[str, mindspore.common.initializer],可选) - 初始化参数的方法。默认值:'normal'

  • dtype (mindspore.dtype,可选) - 输入张量的类型。默认值:mindspore.float32

输入:
  • input (Tensor) - 形状为 \((h\_list[0])\) 的张量。

输出:
  • output (Tensor) - 形状为 \((h\_list[-1])\) 的张量。

异常:
  • TypeError: 如果 h_list 的元素不是 int

样例:

>>> import mindspore as ms
>>> from mindscience.e3nn.nn import FullyConnectedNet
>>> fc = FullyConnectedNet([4,10,20,12,6], ops.tanh)
FullyConnectedNet [4, 10, 20, 12, 6]
>>> v = ms.Tensor([.1,.2,.3,.4])
>>> grad = ops.grad(fc, weights=fc.trainable_params())
>>> fc(v).shape
(6,)
>>> [x.shape for x in grad(v)[1]]
[(4, 10), (10, 20), (20, 12), (12, 6)]