(self)
| 222 | self.model = model |
| 223 | |
| 224 | def create_optimizer(self): |
| 225 | ## param_group |
| 226 | decoder_optimizer_args = self.config.decoder.kwargs.get('optimizer', self.config.optimizer) |
| 227 | neck_optimizer_args = self.config.neck.kwargs.get('optimizer', self.config.optimizer) |
| 228 | |
| 229 | param_group = param_group_multitask(self.model) |
| 230 | param_group[1].update(neck_optimizer_args) |
| 231 | param_group[2].update(decoder_optimizer_args) |
| 232 | |
| 233 | if self.C.rank == 0: |
| 234 | self.logger.info('making param_group_backbone, num_parameters:{}, args: {}'.format(len(param_group[0]['params']), self.config.optimizer)) |
| 235 | self.logger.info('making param_group_neck, num_parameters:{}, args: {}'.format(len(param_group[1]['params']), neck_optimizer_args)) |
| 236 | self.logger.info('making param_group_decoder, num_parameters:{}, args: {}'.format(len(param_group[2]['params']), decoder_optimizer_args)) |
| 237 | if len(param_group) > 3: |
| 238 | self.logger.info('making param_group_other, num_parameters:{}, args: {}'.format(len(param_group[3]['params']), self.config.optimizer)) |
| 239 | else: |
| 240 | self.logger.info('making param_group_other, num_parameters:{}, args: {}'.format(0, 'No Args!')) |
| 241 | |
| 242 | self.config.optimizer.kwargs.params = param_group |
| 243 | self.config.optimizer.kwargs.lr = self.config.base_lr |
| 244 | self.optimizer = optimizers.optim_entry(self.config.optimizer) |
| 245 | |
| 246 | def create_lr_scheduler(self): |
| 247 | if self.C.rank == 0: |
no test coverage detected