Download evaluation/utils/json_helpers.py from HoomKh/ZeroShot-AD: direct link, hf CLI and curl.
- Browser
- Download file 1.62 kB
-
https://huggingface.co/HoomKh/ZeroShot-AD/resolve/main/evaluation/utils/json_helpers.py
- Command line
-
hf download hf://HoomKh/ZeroShot-AD/evaluation/utils/json_helpers.py
-
curl -L -o json_helpers.py https://huggingface.co/HoomKh/ZeroShot-AD/resolve/main/evaluation/utils/json_helpers.py
1.62 kB
| # ----------------------------------------------------------------------------- | |
| # Do Not Alter This File! | |
| # ----------------------------------------------------------------------------- | |
| # The following code is part of the logic used for loading and evaluating your | |
| # output scores. Please DO NOT modify this section, as upon your submission, | |
| # the whole evaluation logic will be overwritten by the original code. | |
| # ----------------------------------------------------------------------------- | |
| import json | |
| import numpy as np | |
| class NumpyEncoder(json.JSONEncoder): | |
| """Special json encoder for numpy types""" | |
| def default(self, obj): | |
| if isinstance(obj, np.integer): | |
| return int(obj) | |
| elif isinstance(obj, np.floating): | |
| return float(obj) | |
| elif isinstance(obj, np.ndarray): | |
| return { | |
| "__ndarray__": obj.tolist(), | |
| "dtype": str(obj.dtype), | |
| "shape": obj.shape, | |
| } | |
| else: | |
| return super(NumpyEncoder, self).default(obj) | |
| def dict_to_json(dct, filename): | |
| """Save a dictionary to a JSON file""" | |
| with open(filename, "w") as f: | |
| json.dump(dct, f, cls=NumpyEncoder) | |
| def json_to_dict(filename): | |
| """Load a JSON file and convert it back to a dictionary of NumPy arrays""" | |
| with open(filename, "r") as f: | |
| dct = json.load(f) | |
| for k, v in dct.items(): | |
| if isinstance(v, dict) and "__ndarray__" in v: | |
| dct[k] = np.array(v["__ndarray__"], dtype=v["dtype"]).reshape(v["shape"]) | |
| return dct | |