Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python3 | |
| # -*- coding:utf-8 -*- | |
| # Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |
| import importlib | |
| import os | |
| import sys | |
| def get_exp_by_file(exp_file): | |
| try: | |
| sys.path.append(os.path.dirname(exp_file)) | |
| current_exp = importlib.import_module(os.path.basename(exp_file).split(".")[0]) | |
| exp = current_exp.Exp() | |
| except Exception: | |
| raise ImportError("{} doesn't contains class named 'Exp'".format(exp_file)) | |
| return exp | |
| def get_exp_by_name(exp_name): | |
| import yolox | |
| yolox_path = os.path.dirname(os.path.dirname(yolox.__file__)) | |
| filedict = { | |
| "yolox-s": "yolox_s.py", | |
| "yolox-m": "yolox_m.py", | |
| "yolox-l": "yolox_l.py", | |
| "yolox-x": "yolox_x.py", | |
| "yolox-tiny": "yolox_tiny.py", | |
| "yolox-nano": "nano.py", | |
| "yolov3": "yolov3.py", | |
| } | |
| filename = filedict[exp_name] | |
| exp_path = os.path.join(yolox_path, "exps", "default", filename) | |
| return get_exp_by_file(exp_path) | |
| def get_exp(exp_file, exp_name): | |
| """ | |
| get Exp object by file or name. If exp_file and exp_name | |
| are both provided, get Exp by exp_file. | |
| Args: | |
| exp_file (str): file path of experiment. | |
| exp_name (str): name of experiment. "yolo-s", | |
| """ | |
| assert ( | |
| exp_file is not None or exp_name is not None | |
| ), "plz provide exp file or exp name." | |
| if exp_file is not None: | |
| return get_exp_by_file(exp_file) | |
| else: | |
| return get_exp_by_name(exp_name) | |