使用yolov8官方代码训练RTDETR的时候报错:NotImplementedError: WARNING ⚠️ ‘YOLO‘ model does not support ‘_new‘ mode

使用官方ultralytics的代码复现RTDETR的时候报错:NotImplementedError: WARNING ⚠️ 'YOLO' model does not support '_new' mode for 'None' task yet.

在这里插入图片描述

原本我只是简单的修改了yaml文件,就报错上述问题。后面参考官方的一个issues:use yolov8-rtdetr.yaml show error
将训练文件修改为:
import warnings
warnings.filterwarnings('ignore')
from ultralytics import RTDETR

if __name__ == '__main__':
    model = RTDETR('/home/root1/miniconda3/envs/itoshi16/lib/python3.8/site-packages/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml')
    model.train(data='/home/root1/data/miya/yolov8/data/data.yaml',
                cache=False,
                imgsz=1024,
                epochs=500,
                batch=4,
                close_mosaic=10,
                workers=8,
                device='0',  # 更改此处
                optimizer='SGD', # using SGD
                # resume='', # last.pt path
                amp=False, # close amp
                # fraction=0.2,
                project='runs/train',
                name='rt',
                )

此时便可以直接开始训练了:

在这里插入图片描述

YOLOv的增量训练通常涉及以下几个步骤,在这里我会提供一种基本的伪代码概述,而不是具体的实现细节,因为完整的代码会涉及到深度学习框架(如PyTorch或TensorFlow)以及YOLOv库的具体API: ```python # 导入必要的库 import torch from yolov import YOLO # 加载预训练YOLO模型(例如YOLOv3) yolo = YOLO.load_pretrained_model() # 检查模型架构是否支持增量更新(有些YOLOs允许动态添加头部) if not yolo.incremental_training_supported(): raise ValueError("This YOLO version does not support incremental training.") # 定义新类别及其对应的类别ID new_classes = ['new_class_1', 'new_class_2'] new_class_ids = [len(yolo.class_names) + i for i in range(len(new_classes))] # 获取新类的one-hot编码 new_one_hot_labels = create_new_class_one_hot(new_class_ids) # 切换到增量训练模式 yolo.train_mode = 'incremental' yolo.add_new_classes(new_classes, new_class_ids) # 选择数据集并准备训练数据 train_data, _ = prepare_dataset_with_new_classes(train_dataset) # 初始化新类的学习率或设置特殊的学习策略 optimizer = get_optimizer_for_new_classes(yolo.parameters(), learning_rate) # 开始增量训练循环 for epoch in epochs: for batch in train_data: images, labels = batch # 预测并计算损失 predictions, loss = yolo(images, labels) # 更新网络权重 optimizer.zero_grad() loss.backward() optimizer.step() # 结束训练后,保存更新后的模型 yolo.save_incrementally_trained_model('incremental_yolo.pth') #
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值