我有一個包含兩個管道的模型:['sbd', 'tagger']. 第一個是句子標記器,第二個是標記器。現在我想用這個模型訓練一個NER,這樣我就可以得到一個包含三個管道的最終模型:['sbd', 'tagger','ner']. 根據文檔,我需要禁用tagger管道才能僅訓練NER。我做到了,培訓過程順利進行。我的問題是,最后保存的模型只包含一個管道,即NER系統。我可以重新啟用以前禁用的管道,以便可以使用完整管道保存最終模型嗎?
2 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
好的,我發現我可以恢復以前禁用的管道。假設我加載了我的模型nlp并禁用了所有管道,除了ner:
other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
disabled = nlp.disable_pipes(*other_pipes)
training...
disabled.restore()

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
為了完全避免這個問題,你可以在一個with僅限于訓練范圍的塊中禁用管道:
with nlp.disable_pipes(*other_pipes):
train_model()
# continue with other stuff
添加回答
舉報
0/150
提交
取消