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