答案简短...可能不是
由于以下几个原因,您不太可能使它正常工作:
- 正在训练的网络正在执行迭代优化
- 在不知道之前批次的结果的情况下,无法优化下一个批次
- 只有一个网络
- 任何并行培训都会创建不同的网络...
- ...然后您将不得不以某种方式合并
长答案...您可以做很多事!
不过,您可以尝试以下几种操作:
- 获得 GPU培训(如果您没有的话)
- 这很痛苦,但是可以稍微加快训练时间
- 但是它将大大降低CPU使用率
- 尝试使用spaCy command line tools
- JSON format很痛苦,但是...
- 好处是您得到了专家编写的优化算法
- 与手工制作的方法相比,它可以产生更快,更好的结果
- 如果您拥有不同的实体,则可以培训多个专业网络
- 这些训练的速度可能更快
- 这些网络可以彼此并行完成(CPU允许)
- 优化您的python 和带有参数的实验
- 速度和质量很大程度上取决于参数调整(批量大小,重复次数等)
- 您的python实现提供了批处理(确保这是一流的)
- 预处理示例
- 空间NER提取仅需少量上下文即可工作
- 您可以尝试对片段进行预处理以包含10或15个周围的单词,并查看您的时间和准确性如何变化
最终想法...您的网络何时“完成”?
我已经训练了包含许多实体的网络,其中数千个示例的时间比指定的时间长,而长和短则有时需要时间。
但是,在培训的前10%中捕获了90%的性能提升。
- 您需要等待50批吗?
- ...还是您正在寻找特定的性能水平?
如果您每X
个批次监视一次质量,则当达到预定的质量水平时,您可以纾困。
您还可以保留以前训练过的旧网络,然后再进行新的培训以“补足”它们,从而达到从头开始同时进行无法达到的性能水平。
祝你好运!