模型训练
自带模型基于 500+万
的文字图片训练而成。
训练命令
命令行工具 介绍了训练命令。使用命令 cnocr train
训练文本检测模型,以下是使用说明:
$ cnocr train -h
Usage: cnocr train [OPTIONS]
训练识别模型
Options:
-m, --rec-model-name TEXT 识别模型名称。默认值为 `densenet_lite_136-gru`
-i, --index-dir TEXT 索引文件所在的文件夹,会读取文件夹中的 train.tsv 和 dev.tsv 文件
[required]
--train-config-fp TEXT 识别模型训练使用的json配置文件,参考
`docs/examples/train_config.json`
[required]
--finetuning 是否为精调模式(精调模式使用更温柔的transform)。默认为 `False`
-r, --resume-from-checkpoint TEXT
恢复此前中断的训练状态,继续训练识别模型。所以文件中应该包含训练状态。默认为
`None`
-p, --pretrained-model-fp TEXT 导入的训练好的识别模型,作为模型初始值。优先级低于"--resume-from-
checkpoint",当传入"--resume-from-
checkpoint"时,此传入失效。默认为 `None`
-h, --help Show this message and exit.
例如可以使用以下命令进行训练:
$ cnocr train -m densenet_lite_136-gru --index-dir data/test --train-config-fp docs/examples/train_config.json
训练数据的格式见文件夹 data/test 中的 train.tsv 和 dev.tsv 文件。
具体使用也可参考文件 Makefile 。
模型精调
如果需要在已有模型的基础上精调模型,需要把训练配置中的学习率设置的较小,lr_scheduler
的设置可参考以下:
{
"learning_rate": 3e-5,
"lr_scheduler": {
"name": "cos_warmup",
"min_lr_mult_factor": 0.01,
"warmup_epochs": 2
}
注:需要尽量避免过度精调!
详细训练教程和训练过程作者答疑
模型训练详细教程 见作者的 知识星球 CnOCR/CnSTD私享群 ,加入私享群后作者也会尽力解答训练过程中遇到的问题。此外,私享群中作者每月提供两次免费特有数据的训练服务。抱歉的是,私享群不是免费的。