Pytorch使用TensorBoard 教你怎样在Pytorch中使用TensorBoard
weixin_38385446 人气:0什么是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()
加载全部内容