MCPcopy Create free account
hub / github.com/OpenGVLab/HumanBench / create_model

Method create_model

PATH/core/testers/reid_tester.py:105–159  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

103 # pin_memory=False)
104
105 def create_model(self):
106 config = self.config
107 ginfo = self.ginfo
108
109 backbone_bn_group_size = config.backbone['kwargs'].get('bn_group_size', 1)
110 assert backbone_bn_group_size == 1, 'other bn group size not support!'
111 backbone_bn_group_comm = self.ginfo.backbone_share_group
112
113 ## build backbone
114 config.backbone['kwargs']['bn_group'] = backbone_bn_group_comm
115 backbone_module = backbones.backbone_entry(config.backbone)
116 count_parameters_num(backbone_module)
117
118 ## build necks
119 neck_bn_group_size = config.backbone['kwargs'].get('bn_group_size', 1)
120 assert neck_bn_group_size == 1, 'other bn group size not support!'
121 neck_bn_group_comm = self.ginfo.neck_share_group
122
123 neck_args = config.neck['kwargs']
124 neck_args['backbone'] = backbone_module
125 neck_args['bn_group'] = neck_bn_group_comm
126 neck_module = necks.neck_entry(config.neck)
127
128 ## add decoder
129 decoder_bn_group_size = config.backbone['kwargs'].get('bn_group_size', 1)
130 assert decoder_bn_group_size == 1, 'other bn group size not support!'
131 decoder_bn_group_comm = self.ginfo.decoder_share_group
132
133 decoder_args = config.decoder['kwargs']
134 decoder_args['backbone'] = backbone_module
135 decoder_args['neck'] = neck_module
136 decoder_args['bn_group'] = decoder_bn_group_comm
137 decoder_args['feature_only'] = True
138 self.config.decoder.kwargs.ginfo = self.ginfo
139 self.config.decoder.kwargs.ignore_value = None
140 self.config.decoder.kwargs.num_classes = 666
141 decoder_module = decoders.decoder_entry(config.decoder)
142
143 # build
144 model = globals()[self.config.get('model_entry_type', 'model_entry')](backbone_module,
145 neck_module,
146 decoder_module)
147
148 ## distributed
149 model.cuda()
150
151 if self.C_train.rank == 0:
152 print(model)
153
154 model = DistModule(model, sync=self.sync, task_grp=self.ginfo.group, \
155 share_backbone_group=self.ginfo.backbone_share_group, \
156 share_neck_group=self.ginfo.neck_share_group, \
157 share_decoder_group=self.ginfo.decoder_share_group)
158
159 self.model = model
160
161 def save(self):
162 pass

Callers

nothing calls this directly

Calls 4

count_parameters_numFunction · 0.90
DistModuleClass · 0.90
getMethod · 0.80
cudaMethod · 0.45

Tested by

no test coverage detected