案例带你学Pytorch(4)——TensorboardX详解(1)

Pytorch的可视化工具TensorboardX—SummaryWriter详解

TensorFlow 附加的工具Tensorboard 是一个很好用的视觉化工具。他可以记录数字,影像或者是声音资讯,对于观察类神经网路训练的过程非常有帮助。很可惜的是其他的训练框架(PyTorch, Chainer, numpy)并没有这么好用的工具。tensorboardX 的目的就是让其他tensorboard 的功能都可以轻易的被非TensorFlow 的框架使用。参见:https://github.com/lanpa/tensorboardX

torch1.10版本可调用模块:torch.utlis.tensorboard.writer,参见:

https://pytorch.org/docs/stable/_modules/torch/utils/tensorboard/writer.html#SummaryWriter.add_scalar,遗憾的是用vs code测试并未成功。

SummaryWriter主要函数

标量

  1. 添加标量add_scalar(self, tag, scalar_value, global_step=None, walltime=None)
  2. 添加标量组add_scalars(self, main_tag, tag_scalar_dict, global_step=None, walltime=None)
  3. 输出标量export_scalars_to_json(self, path)
  4. add_custom_scalars_multilinechart(self, tags, category='default', title='untitled')
  5. add_custom_scalars_marginchart(self, tags, category='default', title='untitled')
  6. add_custom_scalars(self, layout)

图像图表

  1. 添加直方图add_histogram(self, tag, values, global_step=None, bins='tensorflow', walltime=None)记录直方图很耗CPU 资源,不要常用
  2. 添加图像add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
  3. 添加图像组 add_images(self, tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')
  4. add_image_with_boxes(self, tag, img_tensor, box_tensor, global_step=None,walltime=None, dataformats='CHW', **kwargs)
  5. 将matplotlib图形渲染成图像并将其添加到摘要中add_figure(self, tag, figure, global_step=None, close=True, walltime=None)
  6. 添加网络图形 add_graph(self, model, input_to_model=None, verbose=False, **kwargs)

精度曲线

  1. 添加精度曲线add_pr_curve(self, tag, labels, predictions, global_step=None,num_thresholds=127, weights=None, walltime=None)pr:precision-recall
  2. 使用原始数据添加精确调用曲线add_pr_curve_raw(self, tag,true_positive_counts,false_positive_counts,true_negative_counts,false_negative_counts,precision, recall,global_step=None,num_thresholds=127,weights=None, walltime=None)

音频/视频/文字/嵌入

  1. 添加音频add_video(self, tag, vid_tensor, global_step=None, fps=4, walltime=None)
  2. 添加视频add_audio(self, tag, snd_tensor, global_step=None, sample_rate=44100, walltime=None)
  3. 添加文本add_text(self, tag, text_string, global_step=None, walltime=None)
  4. add_embedding(self, mat, metadata=None, label_img=None, global_step=None, tag='default', metadata_header=None)

参数释义

主要参数:

  • tag: 标签,数据标识符号,名称(string):
  • main_tag:标签组名称(string)
  • tag_scalar_dict:标签键值对,(dict);
  • scalar_value : 要保存的值(float or string/blobname)
  • global_step : 要记录的全部步长值(int)
  • walltime (float): Optional override default walltime (time.time()) of event可选覆盖默认的walltime(time.time()),以秒为单位事件的时期
  • dataformats:CHW(默认),NCHW(默认),HW,NHWC
  • img_tensor (torch.Tensor, numpy.array, or string/blobname): 默认shape为(3,H,W)。可以使用torchvision.utils.make_grid()将一批张量转换为3xHxW格式或调用add_images完成。也可以设置为(1,H,W)(H,W)。为避免出错,建议使用默认值CHW(channel在前,更符合一般习惯),img_tensor需要和dataformats匹配。
  • model (torch.nn.Module): 添加模型图graph
  • input_to_model (torch.Tensor or list of torch.Tensor): 喂入模型的数据.

用法

with SummaryWriter() as writer:

你可能感兴趣的:(Pytorch学习)