pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorboard
安装tensorboard,TensorBoard可视化的数据来自于本地l文件,在控制台开启TensorBoard服务时指定该文件夹为监控文件夹。
默认开启6006端口提供服务,通过http://localhost:6006/可以访问可视化结果
官方示例
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
x = range(100)
for i in x:
writer.add_scalar('y=2x', i * 2, i)
writer.close()
这个示例将训练的日志保存在了和你这个python文件同级的目录下,或者理解为 ‘./runs’ 。
运行之后,再去terminal 下调用一下命令:
tensorboard --logdir=D:\grin-main\runs #项目所在的目录下自动新创建了runs文件夹
(我的tensorboard是安装在项目的虚拟环境,即venv文件夹下,所以进入该文件夹的Scripts下可直接使用tensorboard命令)
没有虚拟环境的话,直接在terminal端运行代码,也可运行下面的代码。
tensorboard --logdir runs
然后直接打开链接,可查看结果
tensorboard针对不同的类型数据区分多个标签,每一个标签页面代表不同的类型。简单介绍如下:
1.SCALAR
2.IMAGES
3.GRAPHS
4.HISTOGRAMS
5.PROJECTOR
from torch.utils.tensorboard import SummaryWriter
# 默认使用 "runs/时间" 路径来保存日志
writer = SummaryWriter("./runs/") #./表示当前项目目录,runs文件夹会自动创建,此句表示writer把日志(训练时的相关记录情况)写入runs文件夹下
使用add_scalar来记录数值。
add_scalar(tag, scalar_value, global_step=None, walltime=None)
with SummaryWriter(comment='MutipleInput') as w:
writer.add_scalar("loss", training_losses[-1], global_step=epoch) #training_losses[-1]为模型代码中的loss项
然后在terminal端执行tensorboard --logdir=runs 运行结果如下图:
使用add_graph来可视化神经网络
注意:模型的输入可能有多组,此时可以用(,)格式进行区分。
with SummaryWriter(comment='MutipleInput') as w:
w.add_graph(net, (A_wave,X_batch), False) #net为定义的模型名称,A_wave,X_batch为输入的两组变量
然后在terminal端执行tensorboard --logdir=runs 运行结果如下图:
使用 add_histogram 方法来记录一组数据的直方图。
我们可以通过观察数据、训练参数、特征的直方图,了解到它们大致的分布情况,辅助神经网络的训练过程。
with SummaryWriter(comment='MutipleInput') as w:
writer.add_histogram('theta-w1', net.block1.Theta1[0], global_step=i)
writer.add_histogram('theta-w2', net.block1.Theta1[1], global_step=i) #net.block1.Theta1为训练权重参数,i为迭代轮数,共250次
如上图所见,我们可以通过可视化的直方图更直观地了解可训练参数随着训练次数的变化情况。
更多用法,可参考下面这篇博客:tensorboard全面用法详解