[3ed61c]: / config / serde.py

Download this file

79 lines (61 with data), 2.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""
Created on November 10, 2019
functions for writing/reading data to/from disk
@modified_by: Soroosh Tayebi Arasteh <soroosh.arasteh@fau.de>
"""
import yaml
import numpy as np
import os
import warnings
import shutil
from skimage import io
import pdb
import SimpleITK as sitk
def read_config(config_path):
"""Reads config file in yaml format into a dictionary
Parameters
----------
config_path: str
Path to the config file in yaml format
Returns
-------
config dictionary
"""
with open(config_path, 'rb') as yaml_file:
return yaml.safe_load(yaml_file)
def write_config(params, cfg_path, sort_keys=False):
with open(cfg_path, 'w') as f:
yaml.dump(params, f)
def create_experiment(experiment_name, global_config_path):
params = read_config(global_config_path)
params['experiment_name'] = experiment_name
create_experiment_folders(params)
cfg_file_name = params['experiment_name'] + '_config.yaml'
cfg_path = os.path.join(os.path.join(params['target_dir'], params['network_output_path']), cfg_file_name)
params['cfg_path'] = cfg_path
write_config(params, cfg_path)
return params
def create_experiment_folders(params):
try:
path_keynames = ["network_output_path", "tb_logs_path", "stat_log_path", "output_data_path"]
for key in path_keynames:
params[key] = os.path.join(params['experiment_name'], params[key])
os.makedirs(os.path.join(params['target_dir'], params[key]))
except:
raise Exception("Experiment already exist. Please try a different experiment name")
def open_experiment(experiment_name, global_config_path):
"""Open Existing Experiments
"""
default_params = read_config(global_config_path)
cfg_file_name = experiment_name + '_config.yaml'
cfg_path = os.path.join(os.path.join(default_params['target_dir'], experiment_name, default_params['network_output_path']), cfg_file_name)
params = read_config(cfg_path)
return params
def delete_experiment(experiment_name, global_config_path):
"""Delete Existing Experiment folder
"""
default_params = read_config(global_config_path)
cfg_file_name = experiment_name + '_config.yaml'
cfg_path = os.path.join(os.path.join(default_params['target_dir'], experiment_name, default_params['network_output_path']), cfg_file_name)
params = read_config(cfg_path)
shutil.rmtree(os.path.join(params['target_dir'], experiment_name))