问题描述
到目前为止,我一直在使用 spacy 2.3.1,并且已经为我的自定义语言类训练并保存了几个管道。但是现在使用 spacy 3.0 和 spacy.load('model-path')
我面临着诸如 config.cfg file not found
和其他类型的错误之类的问题。
升级 spacy 后,我是否必须从头开始训练模型?是否有迁移训练模型的分步指南?
解决方法
恐怕您无法仅迁移经过训练的管道。使用 v2 训练的管道与 v3 不兼容,因此您不能只对它们使用 spacy.load
。
您必须将代码库迁移到 v3,并重新训练模型。您有两个选择:
- 更新您的训练循环以将 API 调用从 v2 更改为 v3,请参阅此处了解更多详细信息:https://spacy.io/usage/v3#migrating
- (推荐方法):将您的训练代码完全转换为 v3 中的新 config system。虽然这似乎是一个很大的不同,但您会很快掌握配置系统的窍门,并且您会注意到与从头开始编写所有内容相比,它更加强大和方便。要开始使用配置系统,请查看
init config
命令,例如:
python -m spacy init config config.cfg --lang en --pipeline ner,textcat --optimize accuracy
这将为您提供一些合理的默认设置,以及您可以根据自己的要求进一步自定义的配置文件。