Tensorboard is all u need—Loss & Accuracy

我们经常使用Pytorch来搭建我们的神经网络进行相关的研究,训练神经网络的过程中,不可避免的要观察loss与accuracy的变化过程,来检验我们算法的有效性,并进行参数的调整,以期获得更高的准确率。

可是,面对着loss与accuracy干巴巴的数字,我们不免的会泛起头疼,无法很直观的观察出二者的变化规律,更无法快捷的比较出不同神经网络中,loss与accuracy的优劣异同。

什么鬼。。。。。。。。
咣咣咣~

为了在pytorch中,对Loss与Accuracy进行可视化,我们接下来引入Tensorflow中的一个组件Tensorboard,来对结果进行可视化。

首先我们通过以下方式来导入tensorboard的库(不需要安装Tensorflow):

from torch.utils.tensorboard import SummaryWriter

SummaryWriter函数包含两个参数:

log_dir:tensorboard文件的存放路径

flush_secs:表示写入tensorboard文件的时间间隔

一般使用时,为其设置log_dir参数即可:

writer = SummaryWriter('record/loss')

由于本章主要介绍可视化准确率和损失,所以主要介绍add_scalar()方法,该函数有三个参数:

tag:标签(图的名称)

scalar_value:标签的值(y)

global_step:标签的x轴坐标

writer.add_scalar('Train_loss', loss, epoch)

该行代码每个epoch执行一次,即可实现loss的可视化(accuracy同理)

代码执行完毕后,在目标文件夹下会出现一个新的任务文件。接下来使用以下命令来查看可视化的结果:

tensorboard --logdir=D:\record\loss

这里的logdir即之前设置的任务文件存储的位置。

接着,访问终端给出的网址,即可进入tensorboard界面:

下面是一个样例结果截图:

优雅

Tensorboard整体的界面如下图所示:

高端大气上档次

左边栏目可以进行一些设置,如显示下载链接,曲线平滑化,横轴显示度量等,同时在左边栏目最下方,通过勾选,可以将多个文件的loss或accuracy显示在同一张图上,并通过不同的颜色来进行区分。同时,鼠标在图上滑动上,会为你显示出一系列对应点的值,十分的丝滑过瘾。

通过以上一系列的操作过后,我们的结果便十分完美的呈现在了我们的眼前,让我们对结果的变化过程有了一个更加清晰准确的认识。是不是很easy且perfect?

日常的完结撒花~

发表回复