PyTorch Lightning中TensorBoard未生成日志文件问题排查
问题排查与解决步骤
以下是导致TensorBoard日志未生成的关键问题及修复方案:
未启动训练流程
你提供的代码缺少训练触发步骤,PyTorch Lightning只有在调用trainer.fit()后才会开始写入日志。需在Trainer初始化后添加:trainer.fit(model, train_dataloader=train_loader, val_dataloaders=val_loader) # 或使用DataModule:trainer.fit(model, datamodule=your_datamodule)TensorBoardLogger路径配置错误
TensorBoardLogger的第一个参数save_dir是日志根目录,name会在该目录下创建子文件夹。如果/my_path/to/tb_logs就是你要存放日志的目标文件夹,需调整参数:# 方式1:指定根目录,name设为目标子文件夹名 tb_logger = TensorBoardLogger(save_dir="/my_path/to", name="tb_logs") # 方式2:直接用目标目录作为save_dir,name留空 tb_logger = TensorBoardLogger(tensorboard_output_folder, name="")否则日志会被写入
/my_path/to/tb_logs/my_logger,而非你预期的目录。TorchMetrics日志逻辑问题
直接log metric对象且on_step=True时,需确保step级别准确率计算正确。可改为显式计算当前step结果:def training_step(self, batch, batch_nb): outputs, labels, loss = self._common_step(batch, batch_nb) step_acc = self._train_accuracy(outputs, labels) self.log("training_loss", loss, on_step=True, on_epoch=False) self.log("training_accuracy", step_acc, on_step=True, on_epoch=False)同时需确认
_common_step返回的outputs是否符合Accuracy的输入要求(比如是否是概率/ logits,是否需要先做softmax)。文件夹写入权限不足
虽然你确认了目录存在,但需确保运行代码的用户对该目录有写入权限,可手动创建测试文件验证。Trainer日志开关被禁用
检查Trainer是否意外设置了enable_logging=False(默认值为True),该参数会禁用所有日志输出。
内容的提问来源于stack exchange,提问作者Gulzar
相关产品推荐
相关产品推荐

