fast-reid/tools/test.py

65 lines
1.7 KiB
Python
Raw Normal View History

# encoding: utf-8
"""
2019-04-21 13:38:55 +08:00
@author: l1aoxingyu
@contact: sherlockliao01@gmail.com
"""
import argparse
import os
import sys
2019-01-10 18:39:31 +08:00
from os import mkdir
import torch
2018-10-18 19:04:28 +08:00
from torch.backends import cudnn
2019-01-10 18:39:31 +08:00
sys.path.append('.')
from config import cfg
2019-04-21 13:38:55 +08:00
from data import get_data_bunch
2019-01-10 18:39:31 +08:00
from engine.inference import inference
from modeling import build_model
2019-01-10 18:39:31 +08:00
def main():
parser = argparse.ArgumentParser(description="ReID Baseline Inference")
parser.add_argument(
"--config_file", default="", help="path to config file", type=str
)
parser.add_argument("opts", help="Modify config options using the command-line", default=None,
nargs=argparse.REMAINDER)
2019-01-10 18:39:31 +08:00
args = parser.parse_args()
2019-01-10 18:39:31 +08:00
num_gpus = int(os.environ["WORLD_SIZE"]) if "WORLD_SIZE" in os.environ else 1
2019-01-10 18:39:31 +08:00
if args.config_file != "":
cfg.merge_from_file(args.config_file)
cfg.merge_from_list(args.opts)
cfg.freeze()
2019-01-10 18:39:31 +08:00
output_dir = cfg.OUTPUT_DIR
if output_dir and not os.path.exists(output_dir):
mkdir(output_dir)
2019-01-10 18:39:31 +08:00
logger = setup_logger("reid_baseline", output_dir, 0)
logger.info("Using {} GPUS".format(num_gpus))
logger.info(args)
2019-01-10 18:39:31 +08:00
if args.config_file != "":
logger.info("Loaded configuration file {}".format(args.config_file))
with open(args.config_file, 'r') as cf:
config_str = "\n" + cf.read()
logger.info(config_str)
logger.info("Running with config:\n{}".format(cfg))
2018-10-18 19:04:28 +08:00
cudnn.benchmark = True
2019-01-10 18:39:31 +08:00
2019-04-21 13:38:55 +08:00
train_databunch, test_databunch, num_query = get_data_bunch(cfg)
model = build_model(cfg, train_databunch.c)
2019-01-10 18:39:31 +08:00
model.load_state_dict(torch.load(cfg.TEST.WEIGHT))
2019-04-21 13:38:55 +08:00
inference(cfg, model, test_databunch, num_query)
if __name__ == '__main__':
main()