OpenLenda / yolox /exp /build.py
yutyan's picture
Add app
37f5c2f
raw
history blame
1.24 kB
#!/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)