Yolov7恢复训练遇FileNotFoundError及Colab无响应问题求助
问题原因分析
- 配置文件路径错误:使用
--resume恢复训练时,YOLOv7会自动从checkpoint文件(last.pt)的父目录的父目录中读取训练配置文件opt.yaml。你的last.pt直接放在/content目录下,程序会去根目录/查找opt.yaml,而该文件不存在,触发FileNotFoundError。 - Colab等待状态:异常抛出后进程未正常终止,导致Colab界面显示为等待状态。
解决办法
方法1:使用标准恢复流程(推荐)
YOLOv7的--resume参数可以直接指定checkpoint路径,程序会自动从该文件所在目录的上级目录读取opt.yaml,无需重复手动配置参数。
假设你之前的训练项目目录为/content/drive/MyDrive/YoloV4/Models/yolov7-exp5/(last.pt存放在该目录的yolov7_tiny_exp5子文件夹中),执行以下命令:
!python3 /yolov7/train.py --resume /content/drive/MyDrive/YoloV4/Models/yolov7-exp5/yolov7_tiny_exp5/last.pt
方法2:调整文件目录结构
如果需要继续使用当前指定的参数,需确保last.pt的目录结构符合YOLOv7的预期:
- 将
last.pt移动到你的项目目录下的实验名称子文件夹中,比如:/content/drive/MyDrive/YoloV4/Models/yolov7-exp6/yolov7_tiny_exp6/last.pt - 确保
opt.yaml文件存在于项目根目录/content/drive/MyDrive/YoloV4/Models/yolov7-exp6/下(该文件是你第一次训练时自动生成的,包含所有训练配置) - 执行命令时只需指定
--resume参数:
!python3 /yolov7/train.py --resume /content/drive/MyDrive/YoloV4/Models/yolov7-exp6/yolov7_tiny_exp6/last.pt
方法3:手动创建opt.yaml(应急方案)
如果找不到原始的opt.yaml,可以根据你的训练参数手动创建该文件:
- 在
last.pt的父目录的父目录下创建opt.yaml(比如你的last.pt在/content/exp/yolov7_tiny_exp6/,则在/content/exp/下创建) opt.yaml内容如下:
workers: 8 device: 0 batch_size: 32 data: /yolov7/data/uav.yaml img: [480, 480] cfg: /yolov7/cfg/training/yolov7-tiny.yaml hyp: /yolov7/data/hyp.scratch.tiny.yaml project: /content/drive/MyDrive/YoloV4/Models/yolov7-exp6/ name: yolov7_tiny_exp6 epochs: 201
- 修改训练命令的
--weights路径为调整后的last.pt路径,再执行。
内容的提问来源于stack exchange,提问作者Snowman's Scarf
相关产品推荐
相关产品推荐

