企业网络搭建及应用实验报告汕头网站建设优化
2026/5/21 11:12:26 网站建设 项目流程
企业网络搭建及应用实验报告,汕头网站建设优化,文章网站哪里建设好,免费空间和域名YOLOv9权重文件加载失败#xff1f;路径问题解决方案来了 你是不是也遇到过这样的情况#xff1a;刚准备好YOLOv9的环境#xff0c;信心满满地运行detect_dual.py#xff0c;结果却弹出一行红色错误#xff1a; FileNotFoundError: No such file or directory: ./yolov9…YOLOv9权重文件加载失败路径问题解决方案来了你是不是也遇到过这样的情况刚准备好YOLOv9的环境信心满满地运行detect_dual.py结果却弹出一行红色错误FileNotFoundError: No such file or directory: ./yolov9-s.pt或者更让人摸不着头脑的ValueError: Invalid weights path ./yolov9-s.pt别急——这并不是你的代码写错了也不是模型本身有问题。绝大多数情况下这是路径问题在作祟。本文将结合预装YOLOv9官方版训练与推理镜像的实际使用场景帮你彻底搞清为什么权重加载会失败并提供简单有效的解决方案。1. 镜像环境说明核心框架: pytorch1.10.0CUDA版本: 12.1Python版本: 3.8.5主要依赖: torchvision0.11.0torchaudio0.10.0cudatoolkit11.3, numpy, opencv-python, pandas, matplotlib, tqdm, seaborn 等代码位置:/root/yolov9这个镜像是基于 WongKinYiu/yolov9 官方仓库构建的所有依赖都已配置妥当理论上“开箱即用”。但即便如此很多用户仍然会在第一步——模型推理时卡住原因就是对文件路径的理解出现了偏差。2. 快速上手流程回顾2.1 激活环境conda activate yolov9注意镜像启动后默认处于base环境必须手动激活yolov9环境才能正常使用相关包。2.2 模型推理Inference进入代码目录并执行检测命令cd /root/yolov9 python detect_dual.py --source ./data/images/horses.jpg --img 640 --device 0 --weights ./yolov9-s.pt --name yolov9_s_640_detect理想情况下程序应正常加载权重、完成推理并将结果保存在runs/detect/yolov9_s_640_detect目录中。但如果你没改任何东西就直接运行大概率会报错说找不到yolov9-s.pt。3. 为什么权重文件会“找不到”虽然文档明确写着已包含权重文件镜像内已预下载 yolov9-s.pt 权重在 /root/yolov9 目录下可为什么还会提示找不到呢我们来一步步拆解这个问题。3.1 当前工作目录决定相对路径是否有效当你运行 Python 脚本时Python 是根据当前工作目录来解析相对路径的。比如你执行的是python detect_dual.py --weights ./yolov9-s.pt这里的./yolov9-s.pt表示“当前目录下的 yolov9-s.pt”。但如果当前目录不是/root/yolov9而是别的地方例如/或/home那自然就找不到这个文件了。3.2 常见误区以为脚本能自动切换目录有些人误以为只要脚本在/root/yolov9下它就会自动在这个目录里找文件。但实际上Python 脚本不会自动改变工作目录。即使脚本位于某个路径下它的当前工作目录仍由你运行命令时所在的 shell 路径决定。举个例子# 假设你现在在根目录 cd / python /root/yolov9/detect_dual.py --weights ./yolov9-s.pt这时./yolov9-s.pt指的是/yolov9-s.pt而不是/root/yolov9/yolov9-s.pt—— 显然不存在。这就是最常见的路径错误来源。4. 解决方案三种可靠方法避免路径问题4.1 方法一确保在正确目录下运行命令推荐新手最简单的方法是——先进入代码主目录再运行脚本。cd /root/yolov9 python detect_dual.py --source ./data/images/horses.jpg --img 640 --device 0 --weights ./yolov9-s.pt --name yolov9_s_640_detect这样.指的就是/root/yolov9而该目录下确实存在yolov9-s.pt文件因此可以顺利加载。✅ 优点逻辑清晰适合初学者❌ 缺点每次都要先cd略显繁琐4.2 方法二使用绝对路径最稳定绝对路径永远不会出错。既然我们知道权重文件就在/root/yolov9/yolov9-s.pt那就直接写全路径python detect_dual.py \ --source /root/yolov9/data/images/horses.jpg \ --img 640 \ --device 0 \ --weights /root/yolov9/yolov9-s.pt \ --name yolov9_s_640_detect无论你在哪个目录下运行这条命令都能成功加载权重。✅ 优点绝对可靠不受当前路径影响❌ 缺点路径较长输入麻烦但可通过变量或脚本封装简化4.3 方法三修改脚本内部路径处理逻辑进阶如果你打算批量测试多个模型或图片建议写一个简单的 Shell 脚本或 Python 包装器统一管理路径。例如创建一个run_detect.sh#!/bin/bash cd /root/yolov9 python detect_dual.py \ --source ./data/images/horses.jpg \ --img 640 \ --device 0 \ --weights ./yolov9-s.pt \ --name yolov9_s_640_detect然后赋予执行权限chmod x run_detect.sh ./run_detect.sh这样一来不管从哪里调用脚本都会先进入正确目录再执行从根本上规避路径问题。✅ 优点可复用、易扩展❌ 缺点需要一点脚本编写能力5. 如何验证权重文件是否存在如果你不确定文件是否真的存在可以用以下命令检查ls -l /root/yolov9/yolov9-s.pt如果返回类似-rw-r--r-- 1 root root 138745968 Feb 10 14:23 /root/yolov9/yolov9-s.pt说明文件存在且大小正常约138MB。如果提示“No such file”那可能是镜像未正确加载或文件被误删需重新拉取镜像。6. 其他常见路径相关问题6.1 数据集路径错误在训练时经常出现如下报错FileNotFoundError: [Errno 2] No such file or directory: data/images/train这是因为data.yaml中定义的路径是相对路径而当前工作目录不对。解决办法同样是两种使用绝对路径修改data.yaml中的train:和val:字段train: /root/yolov9/data/images/train val: /root/yolov9/data/images/val或者确保在/root/yolov9目录下运行训练命令。6.2 自定义权重路径怎么办如果你想加载自己上传的.pt文件比如放在/root/my_models/best.pt记得也用绝对路径python detect_dual.py --weights /root/my_models/best.pt --source ...同时确认该文件有读取权限chmod 644 /root/my_models/best.pt7. 总结编号要求总结章节需添加H2编号7. 总结YOLOv9权重文件加载失败99% 的原因是路径设置不当。本文针对预装镜像环境下常见的路径陷阱提供了三种实用解决方案进入/root/yolov9目录后再运行命令让相对路径生效使用绝对路径如/root/yolov9/yolov9-s.pt彻底避免路径歧义编写启动脚本自动化切换目录和执行流程提升效率。此外还强调了当前工作目录的重要性绝对路径 vs 相对路径的选择场景如何验证文件是否存在训练时数据集路径的配置技巧只要记住一句话Python 跑脚本时看的是你“在哪”而不是“脚本在哪”。掌握了这一点绝大多数路径问题都能迎刃而解。现在你可以放心大胆地运行推理和训练任务了。如果还有其他报错不妨先检查一下路径——很多时候答案就藏在最基础的地方。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询