如何解决Python中LayoutParser模型加载的NoneType AttributeError问题?
解决LayoutParser模型加载失败的问题
修正模型名称拼写
你代码里的模型路径lp://EfficientDete/PubLayNet存在拼写错误,正确的模型标识应为lp://EfficientDet/PubLayNet(将EfficientDete改为EfficientDet),这是导致模型加载返回None的常见原因。重新安装兼容的依赖包
确保LayoutParser和Detectron2版本适配,建议安装带Detectron2扩展的LayoutParser版本:pip install layoutparser[detectron2] --upgrade若使用GPU环境,需保证CUDA版本与Detectron2兼容(推荐CUDA 11.3及以上);CPU环境则需确认Detectron2支持CPU运行模式。
手动加载模型(自动下载失败时)
若网络问题导致自动下载模型失败,可手动获取模型权重和配置文件,放到本地目录后指定路径加载:# 替换为你下载的模型文件路径 model = lp.AutoLayoutModel( model_path="/your/local/path/model.pth", config_path="/your/local/path/config.yaml", label_map={0: "text", 1: "title", 2: "list", 3:"table", 4:"figure"} )验证网络连接
自动加载模型需要从官方仓库下载文件,若网络受限会导致加载失败,可切换网络环境后重试。
修正后的示例代码
import layoutparser as lp from PIL import Image # 修正后的模型路径 model = lp.AutoLayoutModel('lp://EfficientDet/PubLayNet') image = Image.open("/Users/kim-yelim/Desktop/test2/papers.jpg") if model is None: print("Model failed to load. Check the model URL or dependencies.") else: layout = model.detect(image) # 可视化检测结果,验证是否成功 lp.draw_box(image, layout, box_width=3).show()
内容的提问来源于stack exchange,提问作者김예림
相关产品推荐
相关产品推荐

