mmengine.model.initialize — mmengine 0.10.7 documentation (original) (raw)

mmengine.model.initialize(module, init_cfg)[source]

Initialize a module.

Parameters:

Example

module = nn.Linear(2, 3, bias=True) init_cfg = dict(type='Constant', layer='Linear', val =1 , bias =2) initialize(module, init_cfg) module = nn.Sequential(nn.Conv1d(3, 1, 3), nn.Linear(1,2))

define key 'layer' for initializing layer with different

configuration

init_cfg = [dict(type='Constant', layer='Conv1d', val=1), dict(type='Constant', layer='Linear', val=2)] initialize(module, init_cfg)

define key'override' to initialize some specific part in

module

class FooNet(nn.Module): def init(self): super().init() self.feat = nn.Conv2d(3, 16, 3) self.reg = nn.Conv2d(16, 10, 3) self.cls = nn.Conv2d(16, 5, 3) model = FooNet() init_cfg = dict(type='Constant', val=1, bias=2, layer='Conv2d', override=dict(type='Constant', name='reg', val=3, bias=4)) initialize(model, init_cfg) model = ResNet(depth=50)

Initialize weights with the pretrained model.

init_cfg = dict(type='Pretrained', checkpoint='torchvision://resnet50') initialize(model, init_cfg)

Initialize weights of a sub-module with the specific part of

a pretrained model by using "prefix".

url = 'http://download.openmmlab.com/mmdetection/v2.0/retinanet/'\ 'retinanet_r50_fpn_1x_coco/'
'retinanet_r50_fpn_1x_coco_20200130-c2398f9e.pth' init_cfg = dict(type='Pretrained', checkpoint=url, prefix='backbone.')