in dora/utils.py [0:0]
def jsonable(value):
import torch
if isinstance(value, dict):
return {k: jsonable(v) for k, v in value.items()}
elif isinstance(value, (list, tuple)):
return [jsonable(v) for v in value]
elif isinstance(value, torch.Tensor):
return value.detach().cpu().tolist()
elif isinstance(value, Path):
return str(value)
elif value is None or isinstance(value, (int, float, str, bool)):
return value
elif isinstance(value, BaseContainer):
return OmegaConf.to_container(value)
else:
raise ValueError(f"{repr(value)} is not jsonable.")