MCPcopy Index your code
hub / github.com/OpenGVLab/InternVL / train

Function train

classification/main_deepspeed.py:336–454  ·  view source on GitHub ↗
(config, ds_config)

Source from the content-addressed store, hash-verified

334
335
336def train(config, ds_config):
337 # -------------- build ---------------- #
338
339 _, dataset_val, _, data_loader_train, data_loader_val, _, mixup_fn = build_loader(config)
340 model = build_model(config)
341 model.cuda()
342
343 if config.MODEL.PRETRAINED:
344 load_pretrained(config, model, logger)
345
346 logger.info(ds_config)
347 model, optimizer, _, _ = deepspeed.initialize(
348 config=ds_config,
349 model=model,
350 model_parameters=get_parameter_groups(model, config),
351 dist_init_required=False,
352 )
353
354 try:
355 model.register_comm_hook(state=None, hook=fp16_compress_hook)
356 logger.info('using fp16_compress_hook!')
357 except:
358 logger.info('cannot register fp16_compress_hook!')
359
360 model_without_ddp = model.module
361
362 lr_scheduler = build_scheduler(config, optimizer, len(data_loader_train))
363 criterion = build_criterion(config)
364
365 model_ema = None
366 if config.TRAIN.EMA.ENABLE:
367 model_ema = EMADeepspeed(model, config.TRAIN.EMA.DECAY)
368
369 # -------------- resume ---------------- #
370
371 max_accuracy = 0.0
372 max_accuracy_ema = 0.0
373 client_state = {}
374 if config.MODEL.RESUME == '' and config.TRAIN.AUTO_RESUME:
375 if os.path.exists(os.path.join(config.OUTPUT, 'latest')):
376 config.defrost()
377 config.MODEL.RESUME = config.OUTPUT
378 config.freeze()
379 tag = None
380 elif config.MODEL.RESUME:
381 config.MODEL.RESUME = os.path.dirname(config.MODEL.RESUME)
382 tag = os.path.basename(config.MODEL.RESUME)
383 if config.MODEL.RESUME:
384 logger.info('loading checkpoint from {}'.format(config.MODEL.RESUME))
385 _, client_state = model.load_checkpoint(load_dir=config.MODEL.RESUME, tag=tag)
386 logger.info(f'client_state={client_state.keys()}')
387 lr_scheduler.load_state_dict(client_state['custom_lr_scheduler'])
388 max_accuracy = client_state['max_accuracy']
389
390 if model_ema is not None:
391 max_accuracy_ema = client_state.get('max_accuracy_ema', 0.0)
392 model_ema.load_state_dict((client_state['model_ema']))
393

Callers 1

main_deepspeed.pyFile · 0.70

Calls 15

activateMethod · 0.95
build_loaderFunction · 0.90
build_modelFunction · 0.90
load_pretrainedFunction · 0.90
build_schedulerFunction · 0.90
EMADeepspeedClass · 0.90
get_parameter_groupsFunction · 0.85
get_optimizer_state_strFunction · 0.85
load_state_dictMethod · 0.80
state_dictMethod · 0.80
build_criterionFunction · 0.70
log_model_statisticFunction · 0.70

Tested by

no test coverage detected