教你如何在Pytorch中使用TensorBoard
什么是TensorboardX
Tensorboard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。可是对于 PyTorch 等其他神经网络训练框架并没有功能像 Tensorboard 一样全面的类似工具,一些已有的工具功能有限或使用起来比较困难 (tensorboard_logger, visdom等) 。TensorboardX 这个工具使得 TensorFlow 外的其他神经网络框架也可以使用到 Tensorboard 的便捷功能。TensorboardX 的 github仓库在这里。
TensorboardX 的文档相对详细,但大部分缺少相应的示例。本文是对TensorboardX 各项功能的完整介绍,每项都包含了示例,给出了可视化效果,希望可以方便大家的使用。笔者水平有限,还请读者们斧正,相关问题可以在留言区提出,我尽量解答。
TensorBoard是TensorFlow中强大的可视化工具
安装TensorBoard
pip install tensorboard
pip install future
代码演示
import numpy as np from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter(comment='test_tensorboard') for x in range(100): writer.add_scalar('y=2x', x * 2, x) writer.add_scalar('y=pow(2, x)', 2 ** x, x) writer.add_scalars('data/scalar_group', {"xsinx": x * np.sin(x), "xcosx": x * np.cos(x), "arctanx": np.arctan(x)}, x) writer.close()
运行完,会保存在当前目录的runs文件底下。
查看结果
# cd 到当前的工作目录下,如: cd 19RNN\predrnn-pytorch-master\predrnn-pytorch-master # 运行 tensorboard tensorboard --logdir "./"
浏览器中输入查看的地址
额外知识点:
(1)writer.add_scalar()
功能:将标量添加到 summary
参数:
tag (string):数据标识符
scalar_value (float or string/blobname):要保存的数值
global_step (int):全局步值
walltime (float):可选参数,用于记录发生的时间,默认为 time.time()
(2)writer.add_scalars()
功能:添加多个标量数据到 summary 中
参数:
main_tag (string):tag 的父级名称
tag_scalar_dict (dict):保存 tag 及相应的值的键值对
global_step (int):全局步值
walltime (float) 可选参数,可选参数,用于记录发生的时间,默认为 time.time()
两者区别
writer.add_scalar() 添加一个标量到 summary
writer.add_scalars() 可以同时添加多个标量到 summary 中,多个标量需要使用键值对的形式输入
两者共同点
第一个参数可简单理解为保存到 tensorboard 日志文件中的标量图像的名称
第二个参数可简单理解为图像的 y 轴数据
第三个参数可简单理解为图像的 x 轴数据
第四个参数都是可选参数,用于记录发生的时间,默认为 time.time()
到此这篇关于教你如何在Pytorch中使用TensorBoard的文章就介绍到这了,更多相关Pytorch使用TensorBoard内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!