问题
当你使用YOLOv8命令行训练模型的时候,如果当前执行的目录下没有相关的预训练模型文件,YOLOv8就会自动下载模型权重文件。这个是一个正常操作,但是你还会发现,当你在参数model中指定已有的,在其他目录下的预训练模型文件,YOLOv8还是会一样去下预训练模型文件,直接无视model参数指定,于是多数开发者都是确保在当前目录下有YOLOv8模型预训练文件。这是由于 YOLOv8 默认从模型权重目录下去寻找模型预训练文件,如果没有则下载
无法从任意一个目录下发起YOLOv8模型训练是个问题!要解决这个问题其实很简单,YOLOv8是有个全局设置参数的,它支持从设置的目录下寻找预训练权重文件,同时支持把训练结果保存到指定目录下。这样设置好以后,我们就可以从任意目录下发起YOLOv8模型训练了,YOLOv8框架默认支持通过命令行修改这些设置参数的。
解决:
下面两种方式, 更改后的目录下面也必须要有 yolov8n.pt
1、把模型放在 YOLOv8 默认模型权重目录
YOLOv8 默认配置可以通过: yolo setting 查看,
图中:绿色框 即 yolov8 搜索模型的路径即: 当前目录下的 weights_dir 目录, 如果搜索不到则会自动下载
因此可以在当前训练运行目录下,新建weights_dir目录,将模型放入即可
2、修改 默认 模型权重目录,weights_dir指向我们训练模型的路径
命令行修改:
# updata a setting
yolo setting weights_dir="/path/to/weight"
#update multipe setting
yolo setting weights_dir="/path/to/weight" tensorboard=False
# Reset setting to default values
yolo setting reset
红色框位 yolov8 设置配置文件,也可以从这里修改,但是不建议
python 代码中修改
from ultralytics.utils import SETTINGS
update_params = {'weights_dir': '/path/to/weights'}
SETTINGS.update(update_params)
print(SETTINGS)