Files
wehub-resource-sync a203934033
Lint test / lint (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:34:58 +08:00

33 lines
1.1 KiB
Python

# Copyright (c) ModelScope Contributors. All rights reserved.
from swift.utils import check_json_format, is_last_rank
from .base import MegatronCallback
from .utils import rewrite_logs
class TensorboardCallback(MegatronCallback):
def __init__(self, trainer):
super().__init__(trainer)
args = self.args
self.config = check_json_format(vars(args))
self.save_dir = args.tensorboard_dir
if self.save_dir is None:
self.save_dir = f'{args.output_dir}/runs'
from torch.utils.tensorboard import SummaryWriter
self.writer = None
if is_last_rank():
self.writer = SummaryWriter(log_dir=self.save_dir, max_queue=args.tensorboard_queue_size)
for k, v in self.config.items():
self.writer.add_text(k, str(v), global_step=self.state.iteration)
def on_log(self, logs):
logs = rewrite_logs(logs)
if self.writer:
for k, v in logs.items():
self.writer.add_scalar(k, v, self.state.iteration)
def on_train_end(self):
if self.writer:
self.writer.close()
self.writer = None