fastNLP.modules.decoder.mlp module

undocumented

class fastNLP.modules.decoder.mlp.MLP(size_layer, activation='relu', output_activation=None, initial_method=None, dropout=0.0)[源代码]

基类:torch.nn.modules.module.Module

别名 fastNLP.modules.MLP fastNLP.modules.decoder.MLP

多层感知器

注解

隐藏层的激活函数通过activation定义。一个str/function或者一个str/function的list可以被传入activation。 如果只传入了一个str/function,那么所有隐藏层的激活函数都由这个str/function定义; 如果传入了一个str/function的list,那么每一个隐藏层的激活函数由这个list中对应的元素定义,其中list的长度为隐藏层数。 输出层的激活函数由output_activation定义,默认值为None,此时输出层没有激活函数。

Examples:

>>> net1 = MLP([5, 10, 5])
>>> net2 = MLP([5, 10, 5], 'tanh')
>>> net3 = MLP([5, 6, 7, 8, 5], 'tanh')
>>> net4 = MLP([5, 6, 7, 8, 5], 'relu', output_activation='tanh')
>>> net5 = MLP([5, 6, 7, 8, 5], ['tanh', 'relu', 'tanh'], 'tanh')
>>> for net in [net1, net2, net3, net4, net5]:
>>>     x = torch.randn(5, 5)
>>>     y = net(x)
>>>     print(x)
>>>     print(y)
__init__(size_layer, activation='relu', output_activation=None, initial_method=None, dropout=0.0)[源代码]
参数
  • size_layer (List[int]) – 一个int的列表,用来定义MLP的层数,列表中的数字为每一层是hidden数目。MLP的层数为 len(size_layer) - 1

  • activation (Union[str,func,List[str]]) – 一个字符串或者函数的列表,用来定义每一个隐层的激活函数,字符串包括relu,tanh和 sigmoid,默认值为relu

  • output_activation (Union[str,func]) – 字符串或者函数,用来定义输出层的激活函数,默认值为None,表示输出层没有激活函数

  • initial_method (str) – 参数初始化方式

  • dropout (float) – dropout概率,默认值为0

training: bool
forward(x)[源代码]
参数

x (torch.Tensor) – MLP接受的输入

返回

torch.Tensor : MLP的输出结果