73 lines
1.7 KiB
Python
73 lines
1.7 KiB
Python
import yaml
|
|
|
|
defalut_env = {
|
|
"DATASET_NAME": "rcv1",
|
|
"DATASET_TARGET": "CCAT",
|
|
"METRICS": ["acc", "f1"],
|
|
"COMP_ESTIMATORS": [
|
|
"our_bin_SLD",
|
|
"our_bin_SLD_nbvs",
|
|
"our_bin_SLD_bcts",
|
|
"our_bin_SLD_ts",
|
|
"our_bin_SLD_vs",
|
|
"our_bin_CC",
|
|
"our_mul_SLD",
|
|
"our_mul_SLD_nbvs",
|
|
"our_mul_SLD_bcts",
|
|
"our_mul_SLD_ts",
|
|
"our_mul_SLD_vs",
|
|
"our_mul_CC",
|
|
"ref",
|
|
"kfcv",
|
|
"atc_mc",
|
|
"atc_ne",
|
|
"doc_feat",
|
|
"rca",
|
|
"rca_star",
|
|
],
|
|
"DATASET_N_PREVS": 9,
|
|
"OUT_DIR_NAME": "output",
|
|
"PLOT_DIR_NAME": "plot",
|
|
"PROTOCOL_N_PREVS": 21,
|
|
"PROTOCOL_REPEATS": 100,
|
|
"SAMPLE_SIZE": 1000,
|
|
}
|
|
|
|
|
|
class Environ:
|
|
def __init__(self, **kwargs):
|
|
self.exec = []
|
|
self.confs = {}
|
|
self.__setdict(kwargs)
|
|
|
|
def __setdict(self, d):
|
|
for k, v in d.items():
|
|
self.__setattr__(k, v)
|
|
|
|
def load_conf(self):
|
|
with open("conf.yaml", "r") as f:
|
|
confs = yaml.safe_load(f)
|
|
|
|
for common in confs["commons"]:
|
|
name = common["DATASET_NAME"]
|
|
if "DATASET_TARGET" in common:
|
|
name += "_" + common["DATASET_TARGET"]
|
|
for k, d in confs["confs"].items():
|
|
_k = f"{name}_{k}"
|
|
self.confs[_k] = common | d
|
|
self.exec.append(_k)
|
|
|
|
if "exec" in confs:
|
|
if len(confs["exec"]) > 0:
|
|
self.exec = confs["exec"]
|
|
|
|
def __iter__(self):
|
|
self.load_conf()
|
|
for _conf in self.exec:
|
|
if _conf in self.confs:
|
|
self.__setdict(self.confs[_conf])
|
|
yield _conf
|
|
|
|
|
|
env = Environ(**defalut_env)
|