fastNLP.models.seq2seq_model module

主要包含组成Sequence-to-Sequence的model

class fastNLP.models.seq2seq_model.TransformerSeq2SeqModel(encoder, decoder)[源代码]

基类:fastNLP.models.seq2seq_model.Seq2SeqModel

基类 fastNLP.models.Seq2SeqModel

别名 fastNLP.models.TransformerSeq2SeqModel fastNLP.models.seq2seq_model.TransformerSeq2SeqModel

Encoder为TransformerSeq2SeqEncoder, decoder为TransformerSeq2SeqDecoder,通过build_model方法初始化

classmethod build_model(src_embed, tgt_embed=None, pos_embed='sin', max_position=1024, num_layers=6, d_model=512, n_head=8, dim_ff=2048, dropout=0.1, bind_encoder_decoder_embed=False, bind_decoder_input_output_embed=True)[源代码]

初始化一个TransformerSeq2SeqModel

参数
  • StaticEmbedding, Tuple[int, int] src_embed (nn.Module,) – source的embedding

  • StaticEmbedding, Tuple[int, int] tgt_embed (nn.Module,) – target的embedding,如果bind_encoder_decoder_embed为 True,则不要输入该值

  • pos_embed (str) – 支持sin, learned两种

  • max_position (int) – 最大支持长度

  • num_layers (int) – encoder和decoder的层数

  • d_model (int) – encoder和decoder输入输出的大小

  • n_head (int) – encoder和decoder的head的数量

  • dim_ff (int) – encoder和decoder中FFN中间映射的维度

  • dropout (float) – Attention和FFN dropout的大小

  • bind_encoder_decoder_embed (bool) – 是否对encoder和decoder使用相同的embedding

  • bind_decoder_input_output_embed (bool) – decoder的输出embedding是否与其输入embedding是一样的权重

返回

TransformerSeq2SeqModel

training: bool
class fastNLP.models.seq2seq_model.LSTMSeq2SeqModel(encoder, decoder)[源代码]

基类:fastNLP.models.seq2seq_model.Seq2SeqModel

基类 fastNLP.models.Seq2SeqModel

别名 fastNLP.models.LSTMSeq2SeqModel fastNLP.models.seq2seq_model.LSTMSeq2SeqModel

使用LSTMSeq2SeqEncoder和LSTMSeq2SeqDecoder的model

classmethod build_model(src_embed, tgt_embed=None, num_layers=3, hidden_size=400, dropout=0.3, bidirectional=True, attention=True, bind_encoder_decoder_embed=False, bind_decoder_input_output_embed=True)[源代码]
参数
  • StaticEmbedding, Tuple[int, int] src_embed (nn.Module,) – source的embedding

  • StaticEmbedding, Tuple[int, int] tgt_embed (nn.Module,) – target的embedding,如果bind_encoder_decoder_embed为 True,则不要输入该值

  • num_layers (int) – Encoder和Decoder的层数

  • hidden_size (int) – encoder和decoder的隐藏层大小

  • dropout (float) – 每层之间的Dropout的大小

  • bidirectional (bool) – encoder是否使用双向LSTM

  • attention (bool) – decoder是否使用attention attend encoder在所有时刻的状态

  • bind_encoder_decoder_embed (bool) – 是否对encoder和decoder使用相同的embedding

  • bind_decoder_input_output_embed (bool) – decoder的输出embedding是否与其输入embedding是一样的权重

返回

LSTMSeq2SeqModel

training: bool