resume:
将model设置为最近一次训练的权重路径 (last.pt)
resume设置为True
YOLOv8 在 Python 环境中直接使用,不用 ultralytics 库
pip uninstall ultralytics
原因:安装 ultralytics 库,只能在虚拟环境中使用,自己修改代码非常麻烦
将数据集、网络结构的 yaml 文件放在 ultralytics/yolo/v8/detect 目录下,只需要修改 ultralytics/yolo/cfg 目录下的 default.yaml 文件即可。
路径使用绝对路径。直接运行 train.py 或者 predict.py 就行。
修改v8 代码:
ultralytics/nn/modules.py 在这个文件中增加模块,
ultralytics/nn/tasks.py 在这个文件中 import 模块,并在 parse_model 方法中添加。
在v8中,使用一下v5的代码报错:
elif m in []:
c1, c2 = ch[f], args[0]
if c2 != n0: # if not output
c2 = make_divisible( c2 * gw, 8)
args = [c1, c2, *args[1:]]
需要改为:
elif m in []:
c1, c2 = ch[f], args[0]
if c2 != nc: # if not output
c2 = make_divisible(min(c2, max_channels) * width, 8)
args = [c1, c2, *args[1:]]
训练时,box_loss, cls_loss, dfl_loss 都是 nan
解决方法:
找到 ultralytics/yolo/engine/trainer.py
在 # Check AMP 中添加语句:
self.amp = False