加载EasyOCR微调模型时触发RuntimeError:state_dict存在缺失键
解决EasyOCR微调模型加载报错的方法
核心原因
你当前代码里用recog_network='arabic'调用的是官方预训练模型,并非自己微调后的模型,权重结构不匹配导致出现state_dict键缺失错误。
具体解决步骤
- 定位微调模型文件:找到EasyOCR训练器生成的微调权重文件(通常为
.pth格式)和对应的配置文件(.yaml格式)所在目录。 - 修改加载代码指定自定义模型:放弃使用官方预设的
arabic网络名,直接传入你的模型文件路径,示例代码如下:import easyocr # 替换为实际的微调模型权重和配置文件路径 reader = easyocr.Reader(['ar'], recog_network='./your_trained_model.pth', recog_network_config='./your_model_config.yaml') - 检查权重文件完整性:若仍报错,确认微调过程中权重文件是否完整保存,是否因训练中断导致文件损坏,必要时重新执行训练保存流程。
- 匹配模型结构:确保加载时使用的模型结构和微调时完全一致,若微调时修改过模型层数、注意力机制等结构,加载代码需同步对应调整,避免结构不匹配引发键缺失。
内容的提问来源于stack exchange,提问作者Ali Khalil
相关产品推荐
相关产品推荐

