Source code for memorax.loggers.file

from pathlib import Path

from memorax.utils.typing import PyTree


[docs] class FileLogger:
[docs] def __init__(self, directory="logs", **kwargs): self.directory = Path(directory) self.directory.mkdir(exist_ok=True, parents=True)
[docs] def log(self, data: PyTree, step: int, **kwargs) -> None: for metric, value in data.items(): path = (self.directory / f"{metric}.csv").resolve() path.parent.mkdir(exist_ok=True, parents=True) header = not path.exists() with open(path, "a") as file: if header: file.write(f"step,{metric}\n") file.write(f"{step},{value}\n")
[docs] def finish(self) -> None: pass