summaryrefslogtreecommitdiff
path: root/faiss/util.py
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2018-12-15 19:57:49 +0100
committeradamhrv <adam@ahprojects.com>2018-12-15 19:57:49 +0100
commit82b2c0b5d6d7baccbe4d574d96e18fe2078047d7 (patch)
treea8784b7ec2bc5a0451c252f66a6b786f3a2504f5 /faiss/util.py
parent8e978af21c2b29f678a09701afb3ec7d65d0a6ab (diff)
parentc5b02ffab8d388e8a2925e51736b902a48a95e71 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'faiss/util.py')
-rw-r--r--faiss/util.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/faiss/util.py b/faiss/util.py
new file mode 100644
index 00000000..97afbc22
--- /dev/null
+++ b/faiss/util.py
@@ -0,0 +1,29 @@
+import time
+import simplejson as json
+import pickle
+from os import path
+from collections import namedtuple
+
+# Converts JSON el['key'] to Pythonic object-style el.key
+def _json_object_hook(d):
+ return namedtuple('X', d.keys())(*d.values())
+
+# Load a JSON recipe
+def load_recipe(path):
+ with open(path) as fh:
+ return json.load(fh, object_hook=_json_object_hook)
+
+# Load a pickle file
+def load_pickle(data_dir, pkl_fn):
+ load_start = time.time()
+ with open(path.join(str(data_dir), str(pkl_fn)), 'rb') as fh:
+ raw = fh.read()
+ data = pickle.loads(raw)
+ load_end = time.time()
+ load_time = load_end - load_start
+ print("Pickle load time: {:.1f}s".format(load_time))
+ return data
+
+def read_json(fn):
+ with open(fn, 'r') as json_file:
+ return json.load(json_file)