tahamajs's picture
download
raw
1.02 kB
import json
from typing import Dict, Any, Optional
import sys
from datetime import datetime
class ExperimentLogger:
_instances: Dict[str, "ExperimentLogger"] = {}
@classmethod
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.