在保存模型之前恢复禁用管道的干净方法

Clean way to restore disabled pipe before saving model

我用 spacy 做了一些 NER 训练。 我已经按照示例使用

with nlp.disable_pipes(*other_pipes):
  optimizer = nlp.begin_training()

我的训练时间很长,所以我需要经常在不同的迭代中保存模型。我使用 nlp.to_disk(outdir) 来保存模型,但它保存在当前状态:禁用管道。

有没有一种干净的方法可以将它与其他管道一起保存(也许通过使用模型的副本并将管道恢复到它?)或者我需要使用这样的代码:

while i:
  disabled = nlp.disable_pipes('tagger', 'parser')
  optimizer = nlp.begin_training(gold_tuples)
  disabled.restore()
  nlp.to_disk(outdir)

您的代码应该可以工作。或者您可以使用 nlp.disable_pipes() 作为上下文管理器。有什么理由不令人满意吗?