MMSeg1.2.2自定义模型

mmsegmentation/
└── mmseg/
  ├── models/
    │ ├── backbones/
      │ │ ├── __init__.py # 更新以注册SFFNetBackbone
      │ │ └── sffnet_backbone.py
    │ ├── decode_heads/
      │ │ ├── __init__.py # 更新以注册SFFNetDecodeHead
      │ │ ├── sffnet_head.py
      │ │ ├── MDAF.py
      │ │ ├── FMS.py
      │ │ └── SppCSPC.py
    │ ├── utils/
      │ │ ├── __init__.py # 更新以注册相关基础模块
      │ │ └── common_conv.py
  └── configs/
    └── sffnet/
      ├── sffnet_convnext_tiny_6xb4_512x512.py

改写backbone:这里需要注意版本问题导致的包迁移,特别是模型需要在注册表中进行注册。 直接使用@MODELS.register_module()进行注册。

import logging

from mmcv.cnn import ConvModule, build_norm_layer

from mmengine.model import BaseModule

from mmengine.runner import load_checkpoint

from mmseg.registry import MODELS

 

改写decode_head: 同样使用@MODELS.register_module()进行注册。

from ..utils import resize

from mmseg.registry import MODELS

from .decode_head import BaseDecodeHead

 

两个阶段的共用的模块可以放到utils中去注册定义并调用,不用两边都定义。


posted @ 2025-03-12 11:26  火哥的自由大冒险  阅读(142)  评论(0)    收藏  举报