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

Python 保存模型前恢复禁用管道的干净方法,python,spacy,Python,Spacy,我和斯帕西一起训练。 我必须遵循这个例子并使用它 with nlp.disable_pipes(*other_pipes): optimizer = nlp.begin_training() 我的训练时间很长,所以我需要在不同的迭代中保存模型。我使用nlp.to_disk(outdir)保存模型,但它保存在当前状态:禁用管道 是否有一种干净的方法将其与其他管道一起保存(可能通过使用模型的副本并将管道恢复到其中?),或者我需要使用如下代码: while i: disabled = nlp

我和斯帕西一起训练。 我必须遵循这个例子并使用它

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()
作为上下文管理器。这两种方法都不令人满意,有什么原因吗?

再次感谢@Trilogism。我在想,因为begin_training()正在生成一个优化器,所以最好在整个过程中保持相同。或者我可以先生成优化器,然后禁用/恢复管道吗?