加载transformers模型时遇“无法从PyTorch checkpoint加载权重”错误
解决TrOCR模型加载时的OSError问题
问题重现
执行以下代码加载TrOCR手写识别模型时触发错误:
from transformers import TrOCRProcessor, VisionEncoderDecoderModel model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-handwritten')
错误日志:
OSError: Unable to load weights from pytorch checkpoint file for '/home/user/.cache/huggingface/hub/models--microsoft--trocr-base-handwritten/snapshots/69659a277424eb381574e4952f3b3fa3440a419b/pytorch_model.bin' at '/home/user/.cache/huggingface/hub/models--microsoft--trocr-base-handwritten/snapshots/69659a277424eb381574e4952f3b3fa3440a419b/pytorch_model.bin'. If you tried to load a PyTorch model from a TF 2.0 checkpoint, please set from_tf=True.
已尝试降级torch、设置from_tf=True、参考GitHub issue #4336方案,均未解决问题。
可行解决方案
检查并修复模型缓存
缓存的pytorch_model.bin可能因中断下载损坏,直接删除缓存目录后重新下载:rm -rf /home/user/.cache/huggingface/hub/models--microsoft--trocr-base-handwritten再次运行加载代码,让transformers自动拉取完整的模型文件。
锁定适配的transformers版本
TrOCR模型对transformers版本有兼容性要求,安装经过验证的稳定版本:pip install transformers==4.28.0同时确保torch版本处于1.13.x至2.0.x区间,无需过度降级。
手动加载本地模型文件
从Hugging Face Hub手动下载完整模型包(包含所有配置和权重文件),解压到本地路径后,直接指定路径加载:model = VisionEncoderDecoderModel.from_pretrained('/your/local/model/path')绕开缓存机制可能带来的文件完整性问题。
补充系统依赖库
Linux环境下,部分OCR模型加载依赖libgomp1库,执行以下命令安装:sudo apt-get install libgomp1若使用GPU,需确认CUDA版本与torch版本匹配,避免硬件加速不兼容导致加载失败。
内容的提问来源于stack exchange,提问作者Izak Hirschman
相关产品推荐
相关产品推荐

