PyTorch中使用TensorBoard的踩坑记录

1.功能介绍:

TensorBoard是tf中的可视化工具,现在在pytorch中也能很方便的使用;它可以记录我们在深度学习过程中的信息。

这里将介绍——

writer.add_graph(模型结构图可视化)、writer.add_scalar(指标(单变量)可视化)

要先创建writer实例哈

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(保存路径)

2.writer.add_scalar注意事项

问题描述:

这个工具的逻辑就是把中间量写入我们的log里面,很好理解,但是运用的时候出现了很多错误,比如:

1.使用writer.add_scalar在logdir中生成了相关的文件,但是无法打开,如下图

 

PyTorch中使用TensorBoard的踩坑记录_第1张图片

 

解决方案:

writer.add_scalar("loss",loss.item(),step)

这里以记录深度学习训练过程中的loss为例,上面的第一项“loss”可以理解为记的这组数据的名称,loss.item()是需要记录的值,step是相关的待记录的步数,最后tensorboard得到的其实就是loss.item()随step变化的曲线。

好了这了特特特别要注意的点来了!!!

我们不就是要记录loss吗,为什么后面要跟上item(),这是因为item()可以将tensor值转化为python数据类型,我通过尝试之后得出结论,记录值必须为python数据类型后面才能正常生成和使用,所以以后大家在使用writer.add_scalar时,务必确保记录的变量为python数据类型,不是就麻烦转化一下!!!这个问题对于初学者太容易忽视,记住了,答应我!!!

然后使用tensorboard --logdir 文件路径,打开弹出的网址就可以使用tensorboard可视化了!


3.writer.add_graph注意事项

writer.add_graph(net,input_to_model = torch.rand(batch_size,channels,H,W))

以处理图片,或者以图片处理思路处理的数组为例,我们的网络实例化得到了net之后,只要给一个正确的输入就可以得到计算图了,这里我强烈建议batch_size设置为一个小一点的数字就可以了,我就设置为的1;我开始直接把我几万组的数组放上去了,我的电脑疯狂的运作,提示使用了99%的计算资源(这里应该是我使用的GPU的原因,我们平时训练可能也会放在GPU中计算,所以没用过的兄弟姐妹注意一下),并且这之后我的电脑开始老弹出广告,感觉像是中了病毒一样,血泪啊!!!

希望这里的分享能帮助到大家!!!

你可能感兴趣的:(数据可视化,pytorch,深度学习,python,机器学习,人工智能)