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

Function train

classification/main_accelerate.py:301–340  ·  view source on GitHub ↗
(config, accelerator: Accelerator)

Source from the content-addressed store, hash-verified

299
300
301def train(config, accelerator: Accelerator):
302 _, _, _, training_dataloader, validate_dataloader, _, mixup_fn = build_loader2(config)
303 model = build_model(config)
304 optimizer = build_optimizer(config, model)
305 criterion = build_criterion(config)
306
307 model, optimizer, training_dataloader, validate_dataloader = accelerator.prepare(
308 model, optimizer, training_dataloader, validate_dataloader)
309
310 effective_update_steps_per_epoch = len(training_dataloader) // config.TRAIN.ACCUMULATION_STEPS
311 lr_scheduler = build_scheduler(config, optimizer, effective_update_steps_per_epoch)
312
313 try:
314 model.register_comm_hook(state=None, hook=fp16_compress_hook)
315 logger.info('using fp16_compress_hook!')
316 except:
317 logger.info('cannot register fp16_compress_hook!')
318
319 max_acc = load_checkpoint_if_needed(accelerator, config, lr_scheduler)
320
321 logger.info(f'Created model:{config.MODEL.TYPE}/{config.MODEL.NAME}')
322 logger.info(str(model))
323 logger.info('Effective Optimizer Steps: {}'.format(effective_update_steps_per_epoch))
324 logger.info('Start training')
325 logger.info('Max accuracy: {}'.format(max_acc))
326 log_model_statistic(accelerator.unwrap_model(model))
327
328 for epoch in range(config.TRAIN.START_EPOCH, config.TRAIN.EPOCHS):
329 train_epoch(model=model, optimizer=optimizer, data_loader=training_dataloader,
330 scheduler=lr_scheduler, criterion=criterion, mixup_fn=mixup_fn,
331 accelerator=accelerator, epoch=epoch, config=config)
332 acc = eval_epoch(config=config, data_loader=validate_dataloader, model=model,
333 accelerator=accelerator)
334
335 accelerator.wait_for_everyone()
336 if acc > max_acc:
337 max_acc = acc
338 save_checkpoint(os.path.join(config.OUTPUT, 'best'), accelerator, epoch, max_acc, config, lr_scheduler)
339 logger.info(f'Max Acc@1 {max_acc:.3f}')
340 save_checkpoint(os.path.join(config.OUTPUT, 'last'), accelerator, epoch, max_acc, config, lr_scheduler)
341
342
343def main():

Callers 1

mainFunction · 0.70

Calls 10

build_loader2Function · 0.90
build_modelFunction · 0.90
build_optimizerFunction · 0.90
build_schedulerFunction · 0.90
build_criterionFunction · 0.70
log_model_statisticFunction · 0.70
train_epochFunction · 0.70
eval_epochFunction · 0.70
save_checkpointFunction · 0.70

Tested by

no test coverage detected