summaryrefslogtreecommitdiff
path: root/inversion/params_opt.py
diff options
context:
space:
mode:
Diffstat (limited to 'inversion/params_opt.py')
-rw-r--r--inversion/params_opt.py39
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__