简介
SoVITS 4.0 已经包含了 TensorBoard 的支持。我们打开 train.py
仔细观察,可以看到以下代码导入了 SummaryWriter
类,它是用于 TensorBoard 可视化的:
from torch.utils.tensorboard import SummaryWriter
在 main()
函数中,可以看到为训练和评估设置了两个独立的 SummaryWriter
对象:
if rank == 0:
logger = utils.get_logger(hps.model_dir)
logger.info(hps)
utils.check_git_hash(hps.model_dir)
writer = SummaryWriter(log_dir=hps.model_dir)
writer_eval = SummaryWriter(log_dir=os.path.join(hps.model_dir, "eval"))
这些 SummaryWriter
对象用于在训练和评估过程中记录各种指标。例如,以下是在训练过程中记录损失、梯度范数等标量指标的代码:
utils.summarize(
writer=writer,
global_step=global_step,
images=image_dict,
scalars=scalar_dict
)
TensorBoard 可视化
要使用 TensorBoard 可视化这些指标,你需要确保已经安装了 TensorBoard(如果没有,可以通过 pip install tensorboard
安装),然后运行以下命令:
tensorboard --logdir /path/to/model/directory
这里的 /path/to/model/directory
是模型日志的存储路径。默认情况下,这个路径由 hps.model_dir
定义,你可以在脚本中找到相应的设置。在启动 TensorBoard 之后,打开浏览器并访问 http://localhost:6006
,即可查看训练和评估过程中的指标。
比如在我的电脑上运行:
tensorboard --logdir H:\so-vits-svc\logs\44k
然后你就可以看到D模型和G模型的训练曲线了。
注意事项
请注意,在训练过程中,如果你发现模型的训练效果不佳,可能需要使用 TensorBoard 分析模型是否过拟合。TensorBoard 可以帮助你可视化模型在训练集和验证集上的表现,进而判断模型是否过拟合。如果模型在训练集上表现很好,但在验证集上表现很差,那么很有可能模型出现了过拟合。