• yolov5训练自己的数据集但推理报错


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 双泉东 2024-06-11 16:13 采纳率: 0% 浏览 11 首页/ 人工智能 / yolov5训练自己的数据集但推理报错 pytorch目标检测人工智能 用yolov5训练自己的数据集,口罩检测,训练结果保存在data/train/exp/下面,然而执行detect.py脚本报了如下错误,可能是什么原因呢?git clone 最新的代码难道有bug? python detect.py --weights runs/train/exp8/weights/last.pt /work/kouzhao/images/train2017/13_Interview_Interview_Sequences_13_809.jpg detect: weights=['runs/train/exp8/weights/last.pt', '/work/kouzhao/images/train2017/13_Interview_Interview_Sequences_13_809.jpg'], source=data/images, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_csv=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1 YOLOv5 🚀 v7.0-318-gc0380fd8 Python-3.10.13 torch-2.2.1 CUDA:0 (NVIDIA GeForce GTX 1060 6GB, 6073MiB) Fusing layers... YOLOv5s summary: 157 layers, 7015519 parameters, 0 gradients, 15.8 GFLOPs Traceback (most recent call last): File "/work/yolov5/detect.py", line 312, in main(opt) File "/work/yolov5/detect.py", line 307, in main run(**vars(opt)) File "/opt/conda/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "/work/yolov5/detect.py", line 115, in run model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half) File "/work/yolov5/models/common.py", line 467, in __init__ model = attempt_load(weights if isinstance(weights, list) else w, device=device, inplace=True, fuse=fuse) File "/work/yolov5/models/experimental.py", line 98, in attempt_load ckpt = torch.load(attempt_download(w), map_location="cpu") # load File "/opt/conda/lib/python3.10/site-packages/torch/serialization.py", line 1040, in load return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) File "/opt/conda/lib/python3.10/site-packages/torch/serialization.py", line 1258, in _legacy_load magic_number = pickle_module.load(f, **pickle_load_args) _pickle.UnpicklingError: invalid load key, '\xff'. 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 阿里嘎多学长 2024-06-11 16:18
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      根据您提供的错误信息和描述,这个问题通常与以下几个方面有关:

      1. 权重文件损坏last.pt文件可能在保存或传输过程中损坏,导致无法正常加载。您可以尝试重新下载或复制该文件。

      2. 版本不兼容:确保您使用的YOLOv5代码库版本与训练时使用的版本一致。如果代码库有更新,可能需要对权重文件进行相应的调整。

      3. CUDA和PyTorch版本:确认您的CUDA和PyTorch版本与权重文件兼容。如果版本不匹配,可能会导致加载错误。

      4. 文件路径问题:确保文件路径正确无误,并且权重文件具有正确的权限设置,以便程序可以访问。

      5. 反序列化错误_pickle.UnpicklingError: invalid load key, '\xff' 错误表明在尝试反序列化权重文件时遇到了问题。这可能是因为文件损坏或者序列化/反序列化过程中使用了不兼容的协议版本。

      解决步骤:

      • 首先,尝试重新生成或获取一个未损坏的权重文件。
      • 确保您的YOLOv5代码库是最新的,或者与训练权重时使用的版本相同。
      • 检查您的CUDA和PyTorch版本是否与权重文件兼容。如果不兼容,考虑升级或降级相应的软件。
      • 尝试在命令行中使用torch.load('path_to_your_file.pt', map_location='cpu')来手动加载权重文件,看是否能够成功加载,这可以帮助确定问题是否出在文件本身。
      • 如果手动加载成功,但程序中仍然报错,可能需要检查detect.py脚本中权重加载的相关代码。

      代码实现(示例):

      import torch
      
      # 尝试手动加载权重文件
      try:
          model_weights = torch.load('runs/train/exp8/weights/last.pt', map_location='cpu')
          print("权重文件加载成功")
      except Exception as e:
          print(f"加载权重文件时出错: {e}")
      

      参考资料:

      如果上述步骤无法解决问题,您可能需要更详细的错误信息或日志来进一步诊断问题。

      展开全部

      评论 编辑记录
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      2022年陕西省工程师职称评审程序在这里,还怕上报不了职称吗?
      Quartz + SpringBoot 实现定时任务(多任务,多执行时间)代码模板(直接CV即可)
      [Hackthebox] Dancing (SMB)
      VCS工具学习笔记(6)
      如何开发一款基于 Vite+Vue3 的在线表格系统(上)
      [MySQL]单行函数
      Java基础:入门程序、常量、变量
      地狱挖掘者系列#1
      k8s 存储卷详解与动静部署详解
      05-Redis高可用集群之水平扩展
    • 原文地址:https://ask.csdn.net/questions/8117007