我需要了解时代/迭代如何影响深度学习模型的训练。
我正在使用Spacy 2.1.3训练NER模型,我的文档很长,因此每次迭代不能训练200个以上的文档。所以基本上我会
从文档0到文档200-> 20个时代
从文档201到文档400-> 20个时代
以此类推。
也许这是一个愚蠢的问题,但是下一批的时期应该与前0-200的时期相同吗?所以如果我选择20个时期,那么我也必须训练20个时期吗?
谢谢
答案 0 :(得分:1)
i need to understand how the epochs/iterations affect the training of a deep learning model
-谁都不确定。在经过一定数量的时期后,您可能会过度拟合,因此应在验证数据集上检查准确性(或其他指标)。为了解决这个问题,经常采用诸如 Early Stopping 之类的技术。
so i cannot train more than 200 documents per iteration.
-您是说一批例子吗?如果是这样,它应该更小(单次迭代中的信息太多且成本太高)。 32
通常用于文本数据,最多64
。批次的大小通常越小,您训练的时间越长,以便更好地达到最低要求(或逃避鞍点)。
此外,您应该使用Python的生成器,以便可以对大于RAM容量的数据进行迭代。
最后但并非最不重要的是,每个示例通常每个时期训练一次。不同的方法(例如oversampling
或undersampling) are sometimes used but usually when your classes distribution is imbalanced (say 10% examples belong to class
0 and 90% to class
1`)或神经网络在特定类别上存在问题(尽管这种方法需要更多经过深思熟虑的方法)。
答案 1 :(得分:0)
通常的做法是仅用1个时期训练每个批次。对20个时期的同一数据子集进行训练可能会导致过度拟合,从而损害模型性能。
要更好地了解每批训练的时期数如何影响您的表现,您可以进行网格搜索并比较结果。