fastNLP.modules.encoder.conv_maxpool module

undocumented

class fastNLP.modules.encoder.conv_maxpool.ConvMaxpool(in_channels, out_channels, kernel_sizes, activation='relu')[源代码]

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

别名 fastNLP.modules.ConvMaxpool fastNLP.modules.encoder.ConvMaxpool

集合了Convolution和Max-Pooling于一体的层。给定一个batch_size x max_len x input_size的输入,返回batch_size x sum(output_channels) 大小的matrix。在内部,是先使用CNN给输入做卷积,然后经过activation激活层,在通过在长度(max_len) 这一维进行max_pooling。最后得到每个sample的一个向量表示。

__init__(in_channels, out_channels, kernel_sizes, activation='relu')[源代码]
参数
  • in_channels (int) – 输入channel的大小,一般是embedding的维度; 或encoder的output维度

  • out_channels (int,tuple(int)) – 输出channel的数量。如果为list,则需要与kernel_sizes的数量保持一致

  • kernel_sizes (int,tuple(int)) – 输出channel的kernel大小。

  • activation (str) – Convolution后的结果将通过该activation后再经过max-pooling。支持relu, sigmoid, tanh

training: bool
forward(x, mask=None)[源代码]
参数
  • x (torch.FloatTensor) – batch_size x max_len x input_size, 一般是经过embedding后的值

  • mask – batch_size x max_len, pad的地方为0。不影响卷积运算,max-pool一定不会pool到pad为0的位置

返回