You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch YOLOv5 Flask部署报错DetectMultiBackend无input_details属性

问题根因与修复方案

错误1:AttributeError: 'DetectMultiBackend' object has no attribute 'input_details'

根因

  • 训练与部署端YOLOv5版本不匹配:训练best.pt权重使用的YOLOv5代码版本,与EC2实例上torch.hub.load加载的本地YOLOv5源码版本存在代差。6.0版本后YOLOv5的DetectMultiBackend类新增了input_details属性做输入格式校验,如果部署端用6.0之前版本的代码加载高版本训练的权重,就会触发属性不存在错误。
  • 环境依赖冲突:EC2的Python环境中同时安装了PyPI源发布的ultralytics/yolov5包和本地拉取的YOLOv5源码,导入时优先级混乱,加载了不匹配的后端类逻辑。
  • force_reload=True参数强制刷新缓存时,会重置本地加载的类定义,容易触发版本校验错位。

修复方案

  • 对齐版本:将训练best.pt时使用的完全同版本YOLOv5源码完整上传到EC2实例,替换当前加载路径下的YOLOv5目录,禁止跨大版本加载权重。
  • 清理冲突依赖与缓存:执行以下命令清理环境中不匹配的包和Torch Hub历史缓存,再重新安装对应版本依赖:
pip uninstall -y ultralytics yolov5
rm -rf ~/.cache/torch/hub/*
cd <你的本地YOLOv5源码根目录>
pip install -r requirements.txt
  • 调整模型加载代码:去掉易触发缓存异常的force_reload=True参数,显式指定正确的源码路径和运行设备,示例:
# 注意路径指向对齐版本的YOLOv5源码根目录,不要指向Flask项目根目录
model = torch.hub.load('./yolov5', 'custom', path='best.pt', source='local', device='cpu') # 有GPU就改成device=0
  • 加载后执行print(model.__class__)校验后端类型,确认是PyTorch对应的DetectMultiBackend实现,没有自动切换到TFLite、OpenCV等不兼容后端。

错误2:PermissionError: [Errno 13] Permission denied: '5555_result.json'

根因

  • Flask服务的运行用户对JSON文件的写入目录无操作权限:如果Flask用systemd、Nginx反向代理托管,默认运行用户通常是www-data、nginx等低权限用户;如果之前用sudo执行过项目脚本,会导致项目目录属主变为root,普通运行用户无写入权限。
  • 代码中使用相对路径写文件,Flask运行时的工作目录与预期不符,指向了无权限的系统路径;或目标路径下已存在属主为root的只读同名文件,触发写入拦截。

修复方案

  • 确认Flask进程的运行用户:执行ps aux | grep flask查看进程对应的属主,给项目目录授予对应用户的权限,示例(项目路径为/opt/yolo_flask,运行用户为www-data):
sudo chown -R www-data:www-data /opt/yolo_flask
sudo chmod -R 755 /opt/yolo_flask

生产环境禁止给目录设置777全权限,避免安全风险。

  • 写文件时改用绝对路径,提前创建固定的结果存储目录,避免相对路径指向异常,代码示例:
import os
# 提前定义固定的结果存储绝对路径
RESULT_SAVE_DIR = "/opt/yolo_flask/results"
# 目录不存在时自动创建,exist_ok=True避免重复创建报错
os.makedirs(RESULT_SAVE_DIR, exist_ok=True)
result_file_path = os.path.join(RESULT_SAVE_DIR, "5555_result.json")
# 后续将结果写入result_file_path即可
  • 检查目标路径下是否存在残留的只读同名文件,若存在直接删除或修改文件权限后再运行服务。

内容的提问来源于stack exchange,提问作者Amit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:36:23