diff options
Diffstat (limited to 'inversion/params_opt.py')
| -rw-r--r-- | inversion/params_opt.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/inversion/params_opt.py b/inversion/params_opt.py new file mode 100644 index 0000000..7333cb9 --- /dev/null +++ b/inversion/params_opt.py @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------ +# Util class for hyperparams. +# ------------------------------------------------------------------------------ + +import json + +class Params(): + """Class that loads hyperparameters from a json file.""" + + def __init__(self, json_path): + self.update(json_path) + + def __setitem__(self, key, item): + self.__dict__[key] = item + + def __getitem__(self, key): + return self.__dict__[key] + + def __repr__(self): + return repr(self.__dict__) + + def __len__(self): + return len(self.__dict__) + + def __delitem__(self, key): + del self.__dict__[key] + + def save(self, json_path): + """Saves parameters to json file.""" + with open(json_path, 'w') as f: + json.dump(self.__dict__, f, indent=4) + + def update(self, *args, **kwargs): + return self.__dict__.update(*args, **kwargs) + + # @property + # def dict(self): + # """Gives dict-like access to Params instance.""" + # return self.__dict__ |
