使用mmdetection在自己写loss的时候遇到的坑

默认约定

如果你想把 MMDetection 修改为自己的项目,请遵循下面的约定。

损失

在 MMDetection 中,model(**data) 的返回值是一个字典,包含着所有的损失和评价指标,他们将会由 model(**data) 返回。

例如,在 bbox head 中,

class BBoxHead(nn.Module):
    ...
    def loss(self, ...):
        losses = dict()
        # 分类损失
        losses['loss_cls'] = self.loss_cls(...)
        # 分类准确率
        losses['acc'] = accuracy(...)
        # 边界框损失
        losses['loss_bbox'] = self.loss_bbox(...)
        return losses

'bbox_head.loss()' 在模型 forward 阶段会被调用。返回的字典中包含了 'loss_bbox','loss_cls','acc'。只有 'loss_bbox''loss_cls' 会被用于反向传播,'acc' 只会被作为评价指标来监控训练过程。

我们默认,只有那些键的名称中包含 'loss' 的值会被用于反向传播。这个行为可以通过修改 BaseDetector.train_step() 来改变。

所以写的需要当loss的东西,在键里面必须命名含有loss这个词

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用MMDetection训练自己的目标检测模型的步骤如下: 1. 安装MMDetection。根据的教程,你需要安装MMDetection来开始训练自己的模型。 2. 构建数据集。使用`build_dataset`函数构建你的训练数据集,传入配置文件中的训练数据路径,并将返回的数据集对象存储在一个列表中,如`datasets = [build_dataset(cfg.data.train)]`。 3. 构建检测器模型。使用`build_detector`函数构建你的检测器模型,传入配置文件中的模型配置,并可选地传入训练和测试的配置。将返回的模型对象存储在一个变量中,如`model = build_detector(cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))`。 4. 配置工作目录。使用`mmcv.mkdir_or_exist`函数创建你的工作目录,这是保存训练模型和日志文件的地方,如`mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))`。 5. 训练模型。使用`train_detector`函数开始训练你的模型,传入模型、数据集、配置文件以及其他相关参数,如`train_detector(model, datasets, cfg, distributed=False, validate=True)`。 如果你正在使用Jupyter Notebook环境,你可以执行以下代码来使用训练好的模型进行推理和可视化: ```python img = mmcv.imread('kitti_tiny/training/image_2/000068.jpeg') # 读取待检测的图像 model.cfg = cfg # 将配置文件设置给模型 result = inference_detector(model, img) # 进行推理 show_result_pyplot(model, img, result) # 可视化结果 ``` 请根据你的具体需求和数据集进行相应的配置和调整,以训练出适合你的目标检测模型。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用MMDetection训练自己的数据集](https://blog.csdn.net/ECHOSON/article/details/119959863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值