首页 > 解决方案 > SpaCy:在为自定义实体训练模型时,我是否需要提前停止?

问题描述

我将我的数据分为训练和测试。

https://spacy.io/usage/training#ner

根据 spacy 提供的用于训练自定义实体的代码片段,似乎没有提前停止。所以我在这里有一个问题??

我是否应该编写一个自定义代码,在每次迭代后执行以下一组操作: 1. 迭代完成。2.根据测试数据检查模型的准确性。3.如果精度超过之前的模型,则保存,否则继续。4. 执行下一次迭代。

或者我完成所有迭代后的最终模型,例如 30 次迭代是最好的模型??

我的自定义代码的示例输出: 在此处输入图像描述

根据上面的输出,说最好的模型在第 13 次迭代是否正确?

标签: nlpspacyopennlp

解决方案


您应该切换到 train CLI,其中包括更好的评估指标和提前停止:https ://spacy.io/api/cli#train

spacy convert可以将很多常见的 NER 格式转换为 spacy 的内部训练格式,并且spacy train比简单的示例训练脚本有更多的选择。(spacyspacy train在内部使用它分发的模型。)


推荐阅读