问题
图像数据集是训练模型与测试模型必备的,一般而言收集到的数据是整个数据,会将整个数据划分成三个数据集,训练集,验证集以及测试集。
验证和测试的数据要确保特征分布和训练集接近,类别比例也是接近的,这样得到的准确率或者loss才真实。
在做ocr识别模型训练的时候,样本比较大,这时候有点疑惑该如何划分数据集,且数据集中较大比例是自动生成的数据。
方法
- 一般而言,对于样本量是非常多的数据时候,可以按照
7:3~9:1
划分数据集。 - 但是对于几百万或千万级数据量而言,测试集样本不需要太多,只需要划分一定数量的数据作为验证集,划太多也没有意义,毕竟测试集的目的是验证其泛化性能。在pp-ocr文章中,1700w训练数据,测试样本1.7w张
另外对于混合自动生成的数据以及真实数据的情况,需要做一些样本均衡。保证一个batch中真实数据样本和合成数据样本的比例是1:1~1:3
左右效果比较理想。如果合成数据过大,会过拟合到合成数据,预测效果往往不佳。
还有一种启发性的尝试是可以先用大量合成数据训练一个base模型,然后再用真实数据微调,在一些简单场景效果也是会有提升的。