我将数据分为训练和测试。
https://spacy.io/usage/training#ner
根据spacy提供的用于训练自定义实体的代码段,似乎没有尽早停止的可能。所以我在这里有一个问题?
我应该编写一个自定义代码,该代码在每次迭代后执行以下一系列操作: 1.迭代完成。 2.检查测试数据上的模型准确性。 3.如果精度超过以前的模型,则保存它,否则继续。 4.执行下一次迭代。
还是我完成所有迭代后的最终模型,例如30次迭代是最好的模型?
根据上面的输出,是不是说最好的模型是第13次迭代?
答案 0 :(得分:1)
您应该切换到火车CLI,其中包括更好的评估指标和提前停止:https://spacy.io/api/cli#train
spacy convert
可以将许多常见的NER格式转换为spacy的内部培训格式,并且spacy train
比简单的示例培训脚本具有更多的选择。 (spacy在内部使用spacy train
为其分发的模型。)