(exp, args, num_gpu)
| 127 | |
| 128 | @logger.catch |
| 129 | def main(exp, args, num_gpu): |
| 130 | if args.seed is not None: |
| 131 | random.seed(args.seed) |
| 132 | torch.manual_seed(args.seed) |
| 133 | cudnn.deterministic = True |
| 134 | warnings.warn( |
| 135 | "You have chosen to seed testing. This will turn on the CUDNN deterministic setting, " |
| 136 | ) |
| 137 | |
| 138 | is_distributed = num_gpu > 1 |
| 139 | |
| 140 | # set environment variables for distributed training |
| 141 | cudnn.benchmark = True |
| 142 | |
| 143 | rank = args.local_rank |
| 144 | # rank = get_local_rank() |
| 145 | |
| 146 | file_name = os.path.join(exp.output_dir, args.experiment_name) |
| 147 | |
| 148 | if rank == 0: |
| 149 | os.makedirs(file_name, exist_ok=True) |
| 150 | |
| 151 | results_folder = os.path.join(file_name, "track_results_motdt") |
| 152 | os.makedirs(results_folder, exist_ok=True) |
| 153 | model_folder = args.model_folder |
| 154 | |
| 155 | setup_logger(file_name, distributed_rank=rank, filename="val_log.txt", mode="a") |
| 156 | logger.info("Args: {}".format(args)) |
| 157 | |
| 158 | if args.conf is not None: |
| 159 | exp.test_conf = args.conf |
| 160 | if args.nms is not None: |
| 161 | exp.nmsthre = args.nms |
| 162 | if args.tsize is not None: |
| 163 | exp.test_size = (args.tsize, args.tsize) |
| 164 | |
| 165 | model = exp.get_model() |
| 166 | logger.info("Model Summary: {}".format(get_model_info(model, exp.test_size))) |
| 167 | #logger.info("Model Structure:\n{}".format(str(model))) |
| 168 | |
| 169 | #evaluator = exp.get_evaluator(args.batch_size, is_distributed, args.test) |
| 170 | |
| 171 | val_loader = exp.get_eval_loader(args.batch_size, is_distributed, args.test) |
| 172 | evaluator = MOTEvaluator( |
| 173 | args=args, |
| 174 | dataloader=val_loader, |
| 175 | img_size=exp.test_size, |
| 176 | confthre=exp.test_conf, |
| 177 | nmsthre=exp.nmsthre, |
| 178 | num_classes=exp.num_classes, |
| 179 | ) |
| 180 | |
| 181 | torch.cuda.set_device(rank) |
| 182 | model.cuda(rank) |
| 183 | model.eval() |
| 184 | |
| 185 | if not args.speed and not args.trt: |
| 186 | if args.ckpt is None: |
nothing calls this directly
no test coverage detected