Spaces:
Runtime error
Runtime error
#!/usr/bin/env python3 | |
# -*- coding:utf-8 -*- | |
# Copyright (c) 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): | |
exp = exp_name.replace("-", "_") # convert string like "yolox-s" to "yolox_s" | |
module_name = ".".join(["yolox", "exp", "default", exp]) | |
exp_object = importlib.import_module(module_name).Exp() | |
return exp_object | |
def get_exp(exp_file=None, exp_name=None): | |
""" | |
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) | |