fastNLP.embeddings.contextual_embedding module

class fastNLP.embeddings.contextual_embedding.ContextualEmbedding(vocab: fastNLP.core.vocabulary.Vocabulary, word_dropout: float = 0.0, dropout: float = 0.0)[源代码]

基类:fastNLP.embeddings.embedding.TokenEmbedding

ContextualEmbedding组件. BertEmbedding与ElmoEmbedding的基类

add_sentence_cache(*datasets, batch_size=32, device='cpu', delete_weights: bool = True)[源代码]

由于动态embedding生成比较耗时,所以可以把每句话embedding缓存下来,这样就不需要每次都运行生成过程。

参数
  • datasets – DataSet对象

  • batch_size – int, 生成cache的sentence表示时使用的batch的大小

  • device – 参考 :class::fastNLP.Trainer 的device

  • delete_weights – 似乎在生成了cache之后删除权重,在不需要finetune动态模型的情况下,删除权重会大量减少内存占用。

返回

remove_sentence_cache()[源代码]

删除缓存的句子表示. 删除之后如果模型权重没有被删除,将开始使用动态计算权重。

返回

training: bool