Tesseract训练报错‘Integer (fast) model’,无法继续训练Apex.lstm
Tesseract自定义模型训练报错问题
问题背景
我跟随《Guide to Tesseract Training》教程及对应仓库进行自定义Tesseract模型训练,完成环境搭建、数据准备后执行命令:
make training MODEL_NAME=Apex START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
成功生成Apex.lstm模型,但继续训练时出现报错:
Error, data/eng/Apex.lstm is an integer (fast) model, cannot continue training
已确认eng.traineddata路径为/usr/share/tesseract-ocr/5/tessdata/且是最新版本,问题仍存在。
疑问
- 该报错含义是什么?如何解决?
- 训练流程中是否遗漏步骤导致无法继续训练
Apex.lstm?
环境信息
- Tesseract 5.3.0
- Ubuntu 20.04(MacBook Pro)
- 使用tesstrain仓库指定版本的Makefile
问题解答
1. 报错含义与解决方法
报错的核心是:你生成的Apex.lstm是整数型(fast)模型,而Tesseract仅支持基于浮点型模型进行增量训练。
Tesseract 5默认会生成优化后的整数型模型,这类模型体积小、推理速度快,但不支持后续的继续训练。解决方式如下:
- 首次训练时添加
TARGET_MODEL_TYPE=floating参数,强制生成浮点型模型,修改后的命令为:
make training MODEL_NAME=Apex START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100 TARGET_MODEL_TYPE=floating
- 已生成的整数型模型无法直接用于继续训练,必须用上述命令重新生成浮点型模型后,再进行增量训练。
2. 训练流程是否遗漏步骤
从报错来看,核心问题并非遗漏步骤,而是默认生成的模型类型不符合继续训练的要求。不过可以检查以下几点确保流程完整:
- 确认数据准备阶段的
.box与.tif文件格式正确,文件对应关系无误; - 首次训练完成后,
data/eng/目录下是否保留了Apex.lstm及配套的Apex.lstm.train、Apex.lstm.eval等辅助文件; - 继续训练时的命令是否正确指定了
MODEL_NAME=Apex,且模型文件路径无误。
内容的提问来源于stack exchange,提问作者Impetus
相关产品推荐
相关产品推荐

