pytorch画loss曲线_Pytorch使⽤tensorboardX可视化。超详
1 引⾔
我们都知道tensorflow框架可以使⽤tensorboard这⼀⾼级的可视化的⼯具,为了使⽤tensorboard这⼀套完美的可视化⼯具,未免可以将其应⽤到Pytorch中,⽤于Pytorch的可视化。
本⽂主要是针对该解决⽅案提供⼀些介绍。
TensorboardX⽀持
scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve and videosummaries等不同的可视化展⽰⽅式,具体介绍移步⾄项⽬Github 观看详情。
2 环境安装
本教程代码环境依赖:
python 3.6+
Pytorch 0.4.0+
tensorboardX:  pip install tensorboardX、pip install tensorflow
3 代码教程
TensorboardX可以提供中很多的可视化⽅式,本⽂主要介绍scalar 和 graph,其他类型相似。
3.1 scalar教程
01_scalar_base.py 代码
对上述代码进⾏解释,⾸先导⼊:from tensorboardXimport SummaryWriter,然后定义⼀个SummaryWriter() 实例。在SummaryWriter()上⿏标ctrl+b我们可以看到SummaryWriter()的参数为:def __init__(self, log_dir=None, comment='', **kwargs):其中log_dir为⽣成的⽂件所放的⽬录,comment为⽂件名称。默认⽬录为⽣成runs⽂件夹⽬录。我们运⾏上述代码:⽣成结果为:
当我们为SummaryWriter(comment='base_scalar')。⽣成结果为:
当我们为SummaryWriter(log_dir='scalar') 添加log_dir参数,可以看到第⼆条数据的⽂件名称包括了base_scalar值。⽣成结果⽬录为:
接着解释writer.add_scalar('scalar/test', np.random.rand(), epoch),这句代码的作⽤就是,将我们所需要的数据保存在⽂件⾥⾯供可视化使⽤。 这⾥是Scalar类型,所以使⽤writer.add_scalar(),其他的队形使⽤对应的函数。第⼀个参数可以简单理解为保存图的名称,第⼆个参数是可以理解为Y轴数据,第三个参数可以理解为X轴数据。当Y轴数据不⽌⼀个时,可以使⽤writer.add_scalars().运⾏代码之后⽣成⽂件之后,我们在runs同级⽬录下使⽤命令⾏:tensorboard --logdir runs. 当SummaryWriter(log_dir='scalar')的log_dir的参数值 存在时,将tensorboard --logdir runs 改为 tensorboard --logdir 参数值
最后调⽤writer.close()。
点击链接即可看到我们的最终需要的可视化结果。
可视化效果
可以分别点击对应的图⽚查看详情。可以看到⽣成的Scalar名称为'scalar/test'与'scalar/test'⼀致。注:可以使⽤左下⾓的⽂件选择你想显⽰的某个或者全部图⽚。
3.2 Graph教程
02_graph_model.py 代码
⾸先我们定义⼀个神经⽹络取名为Net1。然后将其添加到tensorboard可是可视化中。
with SummaryWriter(comment='Net1')as w:
w.add_graph(model, (dummy_input,))
我们重点关注最后两句话,其中使⽤了python的上下⽂管理,with 语句,可以避免因w.close未写造成的问题。推荐使⽤此⽅式。
因为这是⼀个神经⽹络架构,所以使⽤ w.add_graph(model, (dummy_input,)),其中第⼀个参数为需要保存的模型,第⼆个参数为输⼊值,元祖类型。打开tensorvboard控制台,可得到如下结果。
tensorflow入门教程点击Net1部分可以将其⽹络展开,查看⽹络内部构造。
模型可视化结果
其他部分可以继续⼀次展开查看详情。
3.3 ⽹络训练综合教程
解释完上述两部分知识之后,我们可以综合运⽤上述两部分内容,实现线性拟合的训练过程中的loss可
视化和模型的保存。
03_linear_regression.py 代码
我们将运⾏过程中loss和model分别保存,最后打开tensorboard控制台,可以得到模型结果和loss的结果为下图.
模型可视化结果
注:不同的graph的可视化可以使⽤上图Run旁边的下拉框选择。
loss可视化结果
3.4 Tensorboard综合Demo
本Demo代码为TensorboardX提供的官⽅Demo代码。
demo.py
最终运⾏的所有可视化结果为:
最终可视化结果
4 结束语
本⽂是我写的第⼀篇⽐较完整的⽂章,⼤家如果觉得帮助到了你,帮忙点个赞呗。
若转载,请标明出处,谢谢!!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。