在深度学习之中,可视化是必不可少的关键一步,虽然很多时候可以将需要的信息在输出窗口打印出来,但是能表达的信息是在太少,比如 loss趋势图、acc趋势图、权重分布图等等,都难以描述出来;Tensorboard 本是为了 Tensorflow而设计的一款可视化工具,后期 Pytorch 也引入支持,极大的小伙伴们的学习难度,虽然也有其他可视化工具支持,但是 Tensorboard可以直接迁移过来使用,上手还是更快。

官方链接:https://pytorch.org/docs/stable/tensorboard.html

毫无疑问,在使用 tensorboard 之前,需要先安装

pip install tensorboard

Tensorboard 主要的类是 SummaryWriter,所以在使用 Tensorboard 的时候,我们需要先创建一个 SummaryWriter 实例

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter()

PyCharm 的 Terminal 中输入 以下命令即可
注意⚠️:Terminal 的路径必须是在本工程下,不然可能会报错 或 得到意想不到的事!

# 在PyCharm 的 Terminal 中输入
tensorboard --logdir=runs# 退出 Tensorboard
CTRL + C 键

1、SummaryWriter主要方法

1.1 add_scalar

add_scalar(tag, scalar_value, global_step=None, walltime=None)

Add scalar data to summary.

  • tag (string) – Data identifier
  • scalar_value (float or string/blobname) – Value to save
  • global_step (int) – Global step value to record
  • walltime (float) – Optional override default walltime (time.time()) with seconds after epoch of event

1.2 add_scalars

add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)

Adds many scalar data to summary.

  • main_tag (string) – The parent name for the tags
  • tag_scalar_dict (dict) – Key-value pair storing the tag and corresponding values
  • global_step (int) – Global step value to record
  • walltime (float) – Optional override default walltime (time.time()) seconds after epoch of event

1.3 add_graph

add_graph(model, input_to_model=None, verbose=False)

Add graph data to summary.

Parameters

  • model (torch.nn.Module) – Model to draw.
  • input_to_model (torch.Tensor or list of torch.Tensor) – A variable or a tuple of variables to be fed.
  • verbose (bool) – Whether to print graph structure in console.

1.4 add_histogram

add_histogram(tag, values, global_step=None, bins='tensorflow', walltime=None, max_bins=None)

Add histogram to summary.

  • tag (string) – Data identifier
  • values (torch.Tensor, numpy.array, or string/blobname) – Values to build histogram
  • global_step (int) – Global step value to record
  • bins (string) – One of {‘tensorflow’,’auto’, ‘fd’, …}. This determines how the bins are made.
  • walltime (float) – Optional override default walltime (time.time()) seconds after epoch of event

1.5 add_image

add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')

Add image data to summary.

Note that this requires the pillow package.

  • tag (string) – Data identifier
  • img_tensor (torch.Tensor, numpy.array, or string/blobname) – Image data
  • global_step (int) – Global step value to record
  • walltime (float) – Optional override default walltime (time.time()) seconds after epoch of event

Shape:
img_tensor: Default is (3,H,W)(3,H,W)(3,H,W). You can use torchvision.utils.make_grid() to convert a batch of tensor into 3×H×W3\times H\times W3×H×W format or call add_images and let us do the job. Tensor with (1,H,W),(H,W),(H,W,3)(1,H,W) , (H,W) , (H,W,3)(1,H,W),(H,W),(H,W,3) is also suitable as long as corresponding dataformats argument is passed, e.g. CHW, HWC, HW.

1.6 add_images

add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')

Add batched image data to summary.

Note that this requires the pillow package.

  • tag (string) – Data identifier
  • img_tensor (torch.Tensor, numpy.array, or string/blobname) – Image data
  • global_step (int) – Global step value to record
  • walltime (float) – Optional override default walltime (time.time()) seconds after epoch of event
  • dataformats (string) – Image data format specification of the form NCHW, NHWC, CHW, HWC, HW, WH, etc.

Shape:
img_tensor: Default is (N,3,H,W). If dataformats is specified, other shape will be accepted. e.g. NCHW or NHWC.

2、测试

测试代码

from torch.utils.tensorboard import SummaryWriter
import numpy as npwriter = SummaryWriter()for n_iter in range(100):writer.add_scalar('Loss/train', np.random.random(), n_iter)writer.add_scalar('Loss/test', np.random.random(), n_iter)writer.add_scalar('Accuracy/train', np.random.random(), n_iter)writer.add_scalar('Accuracy/test', np.random.random(), n_iter)writer.close()

当运行完 测试代码/项目工程之后,默认情况下,会在项目下生成一个 rans 的文件夹,文件夹内就是运行的结果,接下来,我们需要在 PyCharm 的 Terminal 中输入 以下命令即可
注意⚠️:Terminal 的路径必须是在本工程下,不然可能会报错 或 得到意想不到的事!

在Terminal 运行完之后,会看到 一个蓝色的 http://localhost:6006/,点击就会自动进入 Tensorboard 的网页界面,见效果图

# 在PyCharm 的 Terminal 中输入
tensorboard --logdir=runs# 退出 Tensorboard
CTRL + C 键

Win系统

Mac

效果

问题

对于win系统用户而言,可能出现没有相应的趋势图,原因又可能是 浏览器的问题,在此推荐使用火狐浏览器,即可轻松解决

【解析】TensorBoard 可视化相关推荐

  1. TensorFlow(2)图(默认图与自定义图) TensorBoard可视化

    目录 一.图 1.默认图 1.调用方法查看默认图属性 2..graph查看图属性 代码 2.自定义图(创建图) 1.创建自定义图 2.创建静态图 3.开启会话(运行) 4.查看自定义图 代码 二.Te ...

  2. TensorFlow之图结构与TensorBoard可视化

    TensorFlow之图结构与TensorBoard可视化 1.1 什么是图结构 图包含了一组tf.Operation代表的计算单元对象和tf.Tensor代表的计算单元之间流动的数据. 1.2 图相 ...

  3. keras和tensorflow使用 keras.callbacks.TensorBoard 可视化数据

    此文首发于我的个人博客:keras和tensorflow使用 keras.callbacks.TensorBoard 可视化数据 - zhang0peter的个人博客 TensorBoard 是一个非 ...

  4. PyTorch中如何使用tensorboard可视化

    PyTorch中如何使用tensorboard可视化 调用代码: from logger

  5. 【深度学习】Tensorboard可视化模型训练过程和Colab使用

    [深度学习]Tensorboard可视化模型训练过程和Colab使用 文章目录 1 概述 2 手撸代码实现 3 Colab使用3.1 详细步骤3.2 Demo 4 总结 1 概述 在利用TensorF ...

  6. TF之CNN:基于CIFAR-10数据集训练、检测CNN(2+2)模型(TensorBoard可视化)

    TF之CNN:基于CIFAR-10数据集训练.检测CNN(2+2)模型(TensorBoard可视化) 目录 1.基于CIFAR-10数据集训练CNN(2+2)模型代码 2.检测CNN(2+2)模型 ...

  7. TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(TensorBoard可视化)

    TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(TensorBoard可视化) 目录 输出结果 代码设计 输出结果 代码设计 import tenso ...

  8. TF之DNN:对DNN神经网络进行Tensorboard可视化(得到events.out.tfevents本地服务器输出到网页可视化)

    TF之DNN:对DNN神经网络进行Tensorboard可视化(得到events.out.tfevents本地服务器输出到网页可视化) 目录 输出结果 代码设计 输出结果 代码设计 import te ...

  9. TF学习——TF之Tensorboard:Tensorflow之Tensorboard可视化简介、入门、使用方法之详细攻略

    TF学习--TF之Tensorboard:Tensorflow之Tensorboard可视化简介.入门.使用方法之详细攻略 目录 Tensorboard简介 Tensorboard各个板块入门 Ten ...

  10. Tensorboard—使用keras结合Tensorboard可视化

    1. keras如何使用tensorboard keras使用tensorboard是通过回调函数来实现的,关于什么是keras的"回调函数",这里就不再赘述了,所以Tensorb ...

最新文章

  1. linux 查看网络 wait
  2. 【ML】 李宏毅机器学习一:error
  3. 【已解决】java.lang.NullPointerException at line 15, Solution.r
  4. .NET系列 之 开源和不开源的背后
  5. Linux Shell脚本入门教程系列之(一)Shell简介
  6. 常用 AT 命令手册
  7. centos 6 apt.sw.be 错误 无法yum安装软件解决方案
  8. vue-cli2.0+webpack 项目搭建
  9. 毕设项目 - 基于SSM的教师工作考核绩效管理系统(含源码+论文)
  10. linux环境使用c语言获取系统时间,并拼接成字符串
  11. Newton-Raphson算法
  12. ORACLE 几种同步灾备手段(OGG,ADG,DSG,高级复制,流复制,logmnr)
  13. 时间序列分析之指数平滑法(holt-winters及代码)
  14. 如何降低TCP三次握手延迟负面影响
  15. matlab网络通讯消息响应,nevoVI FIRE——实现PC与CAN和LIN网络通信
  16. matlab中的sig函数,MATLAB——sigmoid传递函数
  17. 中文/英文 文本相似度/文本推理/文本匹配数据集汇总(SNLI、MSRP、MultiNLI、Quora、SciTail、SICK、STS、CCKS2018、LCQMC、OCNLI、XNLI)
  18. 百度云盘搜索助手 V1.2
  19. Android 音乐播放器制作(带有通知栏、Widget小挂件)
  20. Word转PDF用什么软件?建议收藏这些软件

热门文章

  1. win10怎么安装php有安装包,win10应用商店安装包保存在哪里?
  2. NtripShare Mos地铁监测云平台与监测终端盒子架构设计
  3. 2020-10-24 大数据面试问题
  4. 2020年茶艺师(初级)考试题及茶艺师(初级)新版试题
  5. 02323_历年考试部分试题答案及解析
  6. 8个字说明什么是领导力
  7. php cookie的位置,php 设置cookie路径例子总结
  8. 我的Python数据分析与可视化笔记
  9. IIS日志文件存在哪里?Windows服务器IIS日志存放位置 及 查看方法
  10. 【汤鸿鑫 3D太极】5年目标规划(基本功、套路、实战搏击)