解决ultralytics中的YOLOv8在执行task.py文件添加模块操作出现的KeyError报错

报错详情:

ultralytics项目文件夹内运行/home/xxx/ultralytics/train.py进行单GPU训练的时候训练可以正常进行

from ultralytics import YOLO

# Load a model
model = YOLO("/home/xxx/ultralytics/ultralytics/cfg/models/v8/yolov8s-FASFF.yaml")  # 

# Train the model
results = model.train(data="/home/xxx/ultralytics/ultralytics/cfg/datasets/VisDrone.yaml", device='1', batch=5, epochs=200, imgsz=640)

但是启动多GPU后训练就会发生KeyEroor报错

# Train the model
results = model.train(data="/home/xxx/ultralytics/ultralytics/cfg/datasets/VisDrone.yaml", device='0,1,2', batch=15, epochs=200, imgsz=640)

请添加图片描述

解决方案:

将项目文件夹ultralytics内的task.py和虚拟环境模块包内的task.py同时做类似如下的代码配置

  • /home/xxx/ultralytics/ultralytics/nn/tasks.py
  • /home/xxx/anaconda3/envs/openmmlab/lib/python3.8/site-packages/ultralytics/nn/tasks.py

在这里插入图片描述
在这里插入图片描述
问题即可迎刃而解!

PS C:\Users\35878> & C:/Users/35878/.conda/envs/yolov8/python.exe d:/AAAGOTTAWORK/OTHER/learn/opencv/yolov8/ultralytics_yolov8/ultralytics_main_yolov8/trian.py WARNING ⚠️ Unable to automatically guess model task, assuming 'task=detect'. Explicitly define task for your model, i.e. 'task=detect', 'segment', 'classify', or 'pose'. from n params module arguments Traceback (most recent call last): File "d:/AAAGOTTAWORK/OTHER/learn/opencv/yolov8/ultralytics_yolov8/ultralytics_main_yolov8/trian.py", line 5, in <module> model = YOLO('D:\\AAAGOTTAWORK\\OTHER\\learn\\opencv\\yolov8\\ultralytics_yolov8\\ultralytics_main_yolov8\\train_dataset\\underwater-pipes-4ng4t_7971\\data.yaml') File "d:\AAAGOTTAWORK\OTHER\learn\opencv\yolov8\ultralytics_yolov8\ultralytics_main_yolov8\ultralytics\engine\model.py", line 92, in __init__ self._new(model, task) File "d:\AAAGOTTAWORK\OTHER\learn\opencv\yolov8\ultralytics_yolov8\ultralytics_main_yolov8\ultralytics\engine\model.py", line 128, in _new self.model = (model or self._smart_load('model'))(cfg_dict, verbose=verbose and RANK == -1) # build model File "d:\AAAGOTTAWORK\OTHER\learn\opencv\yolov8\ultralytics_yolov8\ultralytics_main_yolov8\ultralytics\nn\tasks.py", line 232, in __init__ self.model, self.save = parse_model(deepcopy(self.yaml), ch=ch, verbose=verbose) # model, savelist File "d:\AAAGOTTAWORK\OTHER\learn\opencv\yolov8\ultralytics_yolov8\ultralytics_main_yolov8\ultralytics\nn\tasks.py", line 677, in parse_model for i, (f, n, m, args) in enumerate(d['backbone'] + d['head']): # from, number, module, args KeyError: 'backbone'
最新发布
07-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值