Buckets:
| import json | |
| from typing import Dict, Any, Optional | |
| import sys | |
| from datetime import datetime | |
| class ExperimentLogger: | |
| _instances: Dict[str, "ExperimentLogger"] = {} | |
| def setup(cls, log_dir: str, run_id: str, verbosity: int = 1) -> "ExperimentLogger": | |
| key = f"{log_dir}#{run_id}" | |
| if key not in cls._instances: | |
| cls._instances[key] = cls(log_dir, run_id, verbosity) | |
| return cls._instances[key] | |
| def __init__(self, log_dir: str, run_id: str, verbosity: int): | |
| self.log_dir = log_dir | |
| self.run_id = run_id | |
| self.verbosity = verbosity | |
| self.metrics: Dict[str, Any] = {} | |
| def log(self, metrics: Dict[str, Any]) -> None: | |
| if self.verbosity >= 1: | |
| print(f"[{datetime.now()}] [run={self.run_id}] {metrics}", flush=True) | |
| for k, v in metrics.items(): | |
| self.metrics[k] = v | |
| def dump(self, path: str) -> None: | |
| with open(path, "w") as f: | |
| json.dump(self.metrics, f, indent=2) | |
Xet Storage Details
- Size:
- 1.02 kB
- Xet hash:
- 37985040b1c54ebbbd052f0e04884cae41d4f76af2a20b58ae9bd30858ca238a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.