import os from pathlib import Path class Log: def __init__(self, path): self.path = path header = ["epoch","avg_txt","avg_enc","avg_dec","txt_loss","masking_loss","prediction_loss"] if Path(path).is_file(): return with open(self.path, "w", encoding="utf-8", newline="") as f: f.write(",".join(header) + "\n") def write(self, loss: list[float]): line = ",".join(str(float(x)) for x in loss) + "\n" with open(self.path, "a", encoding="utf-8", newline="") as f: f.write(line) f.flush() os.fsync(f.fileno()) # extra durability per write # suggested against sudden crashes since it will be done