(config)
| 455 | |
| 456 | |
| 457 | def eval(config): |
| 458 | _, _, _, _, data_loader_val, _, _ = build_loader(config) |
| 459 | model = build_model(config) |
| 460 | model.cuda() |
| 461 | model = torch.nn.parallel.DistributedDataParallel( |
| 462 | model, device_ids=[config.LOCAL_RANK], broadcast_buffers=False) |
| 463 | |
| 464 | model_wo_ddp = model.module |
| 465 | if config.MODEL.RESUME: |
| 466 | try: |
| 467 | checkpoint = torch.load(config.MODEL.RESUME, map_location='cpu') |
| 468 | msg = model_wo_ddp.load_state_dict(checkpoint['model'], strict=False) |
| 469 | logger.info(msg) |
| 470 | except: |
| 471 | try: |
| 472 | from deepspeed.utils.zero_to_fp32 import \ |
| 473 | get_fp32_state_dict_from_zero_checkpoint |
| 474 | ckpt_dir = os.path.dirname(config.MODEL.RESUME) |
| 475 | tag = os.path.basename(config.MODEL.RESUME) |
| 476 | state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir=ckpt_dir, tag=tag) |
| 477 | model_wo_ddp.load_state_dict(state_dict) |
| 478 | except: |
| 479 | checkpoint = torch.load(os.path.join(config.MODEL.RESUME, 'mp_rank_00_model_states.pt'), |
| 480 | map_location='cpu') |
| 481 | model_wo_ddp.load_state_dict(checkpoint['module']) |
| 482 | elif config.MODEL.PRETRAINED: |
| 483 | load_pretrained(config, model_wo_ddp, logger) |
| 484 | |
| 485 | if config.THROUGHPUT_MODE: |
| 486 | throughput(data_loader_val, model, logger) |
| 487 | |
| 488 | eval_epoch(config, data_loader_val, model) |
| 489 | |
| 490 | |
| 491 | if __name__ == '__main__': |
no test coverage detected