fastNLP.modules.encoder.char_encoder module

undocumented

class fastNLP.modules.encoder.char_encoder.ConvolutionCharEncoder(char_emb_size=50, feature_maps=40, 30, 30, kernels=1, 3, 5, initial_method=None)[源代码]

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

别名 fastNLP.modules.ConvolutionCharEncoder fastNLP.modules.encoder.ConvolutionCharEncoder

char级别的卷积编码器.

__init__(char_emb_size=50, feature_maps=40, 30, 30, kernels=1, 3, 5, initial_method=None)[源代码]
参数
  • char_emb_size (int) – char级别embedding的维度. Default: 50 :例: 有26个字符, 每一个的embedding是一个50维的向量, 所以输入的向量维度为50.

  • feature_maps (tuple) – 一个由int组成的tuple. tuple的长度是char级别卷积操作的数目, 第`i`个int表示第`i`个卷积操作的filter.

  • kernels (tuple) – 一个由int组成的tuple. tuple的长度是char级别卷积操作的数目, 第`i`个int表示第`i`个卷积操作的卷积核.

  • initial_method – 初始化参数的方式, 默认为`xavier normal`

forward(x)[源代码]
参数

x (torch.Tensor) – [batch_size * sent_length, word_length, char_emb_size] 输入字符的embedding

返回

torch.Tensor : 卷积计算的结果, 维度为[batch_size * sent_length, sum(feature_maps), 1]

training: bool
class fastNLP.modules.encoder.char_encoder.LSTMCharEncoder(char_emb_size=50, hidden_size=None, initial_method=None)[源代码]

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

别名 fastNLP.modules.LSTMCharEncoder fastNLP.modules.encoder.LSTMCharEncoder

char级别基于LSTM的encoder.

__init__(char_emb_size=50, hidden_size=None, initial_method=None)[源代码]
参数
  • char_emb_size (int) – char级别embedding的维度. Default: 50 例: 有26个字符, 每一个的embedding是一个50维的向量, 所以输入的向量维度为50.

  • hidden_size (int) – LSTM隐层的大小, 默认为char的embedding维度

  • initial_method – 初始化参数的方式, 默认为`xavier normal`

forward(x)[源代码]
参数

x (torch.Tensor) – [ n_batch*n_word, word_length, char_emb_size] 输入字符的embedding

返回

torch.Tensor : [ n_batch*n_word, char_emb_size]经过LSTM编码的结果

training: bool