2022-01-18 TensorBoard

更多详细参见:

https://www.tensorflow.org/tensorboard/

或者

https://tensorflow.google.cn/tensorboard

速览

  1. 基础

    • 安装
    • 使用
    • 运行
    • 共享
  2. torch.utils.tensorboard

    torch.utils.tensorboard.writer.SummaryWriter(log_dir=None, comment='', purge_step=None, max_queue=10, flush_secs=120, filename_suffix='')
    
    add_scalar(tag, scalar_value, global_step=None, walltime=None, new_style=False, double_precision=False)
    add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)
    add_histogram(tag, values, global_step=None, bins='tensorflow', walltime=None, max_bins=None)
    add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
    add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')
    add_figure(tag, figure, global_step=None, close=True, walltime=None)
    add_video(tag, vid_tensor, global_step=None, fps=4, walltime=None)
    add_audio(tag, snd_tensor, global_step=None, sample_rate=44100, walltime=None)
    add_text(tag, text_string, global_step=None, walltime=None)
    add_graph(model, input_to_model=None, verbose=False, use_strict_trace=True)
    add_embedding(mat, metadata=None, label_img=None, global_step=None, tag='default', metadata_header=None)
    add_pr_curve(tag, labels, predictions, global_step=None, num_thresholds=127, weights=None, walltime=None)
    add_custom_scalars(layout)
    add_mesh(tag, vertices, colors=None, faces=None, config_dict=None, global_step=None, walltime=None)
    add_hparams(hparam_dict, metric_dict, hparam_domain_discrete=None, run_name=None)
    flush()
    close()
    

基础

  1. 为了运行TensorBoard,安装(为了使用完整功能,装个TensorFlow)

    $ pip install tensorboard

  2. 使用

    from torch.utils.tensorboard import SummaryWriter
    writer = SummaryWriter()
    
    writer.add_scalar("Loss/train", loss, epoch)
    
    writer.flush()
    writer.close()
    
  3. 运行

    $ tensorboard --logdir=runs

    打开URL--http://localhost:6006/

  4. 共享TensorBoard dashboards

    • 注意:上传数据是公开的,不要上传敏感数据

    • 保持最新版本

      $ pip install tensorboard --upgrade

    • 上传实验记录(TensorBoard格式的)

      $ tensorboard dev upload --logdir runs \
      --name "My latest experiment" \ # optional
      --description "Simple comparison of several hyperparameters" # optional
      
    • 查询帮助

      $ tensorboard dev --help

    • 使用在终端提供的URL在线查看你的TensorBoard

    torch.utils.tensorboard

    1. torch.utils.tensorboard.writer.SummaryWriter(log_dir=None, comment='', purge_step=None, max_queue=10, flush_secs=120, filename_suffix='')

      简介:定义SummaryWriter类对象

      log_dir (string):保存目录。默认./runs/current_datatime_hostname,可以为每次实验指定目录如'runs/exp1','runs/exp2'

      comment (string):添加到log_dir的后缀,当指定log_dir时忽略此参数

      purge_step (int):当记录在第T + X步崩溃崩溃并在第T步重启时,大于等于Tglobal_step的记录会从TensorBoard中删除和隐藏。注意崩溃和重启的实验应有相同的log_dir

      max_queue (int):指定add多少个记录后强制flush到硬盘。默认为10

      flush_secs (int):flush的频率(写到硬盘的频率),单位秒,默认两分钟

      filename_suffix (string):

    2. add_scalar(tag, scalar_value, global_step=None, walltime=None, new_style=False, double_precision=False)

      介绍:向记录中添加标量数据(Add scalar data to summary)

      tag (string):数据标识符

      scalar_value (float or string/blobname):保存的值

      global_step (int):全局的step值(多少iter或epoch)

      walltime (float):

      new_style (boolean):是使用新的风格(tensor)还是旧的风格(简单的值)。新风格数据加载更快

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

      简介:向记录中添加多个标量数据

      main_tag (string):标签的父名称

      tag_scalar_dict (dict):存放标签和对应值的Key-value对

      global_step (int):

      walltime (float):

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

      简介:添加图片

      img_tensor (torch.Tensor, numpy.array, string/blobname) :图片数据

      img_tensor:默认(3,H,W),可以使用torchvision.utils.make_grid()将一个batch的tensor转为3xHxW格式或者直接调用add_imagesdataformats应该和tensor一致。

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

      dataformats:图像数据格式,NCHW、NHWC、CHW、HWC、HW、WH等

      image_tensor:默认(N, 3, H, W)

    6. add_figure(tag, figure, global_step=None, close=True, walltime=None)

      简介:将matplotlib figure渲染到图像中并添加到summary

      figure (matplotlib.pyplot.figure):一个figure或一个figure组成的列表

      close (bool):是否自动关闭figure

    7. add_text(tag, text_string, global_step=None, walltime=None)

      简介:添加文本

    8. add_graph(model, input_to_model=None, verbose=False, use_strict_trace=True)

      简介:添加graph

      model (torch.nn.Module):需要绘制的Model

      input_to_model (torch.Tensor or list of torch.Tensor):一个变量或一个由变量组成tuple

      verbose (bool):是否在控制台打印图结构

      use_strict_trace

    9. add_embedding(mat, metadata=None, label_img=None, global_step=None, tag='default', metadata_header=None)

      简介:添加embedding projector data,(样本的高维特征在低维上显示分布)

      mat (torch.Tensor or numpy.array):一个每行代表一个数据点的特征的矩阵

      metadata (list):a list of labels,每一个元素将被转成string

      label_img (torch.Tensor):图像对应每个数据点

      mat: (N, D), N是样本数,D是特征维度

      label_img: (N, C, H, W)

    10. add_pr_curve(tag, labels, predictions, global_step=None, num_thresholds=127, weights=None, walltime=None)

      简介:添加PR曲线。绘制pr曲线来了解不同阈值时模型性能。需要为每个target提供预测得分以及ground truth label(T/F)。

      labels (torch.Tensor, numpy.array, or string/blobname):ground truth data,二元label

      predictions (torch.Tensor, numpy.array, or string/blobname):一个元素被分类正确的概率

      num_thresholds (int):用来绘制曲线使用的阈值个数

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

      简介:添加直方图

    12. add_video(tag, vid_tensor, global_step=None, fps=4, walltime=None)

      简介:添加视频

    13. add_audio(tag, snd_tensor, global_step=None, sample_rate=44100, walltime=None)

      简介:添加音频

    14. add_custom_scalars(layout)

      简介:通过收集scalars中的tag创建特殊图表。每个SummaryWriter对象只能调用一次,只能在训练循环的开始之前或结束之后调用。

    15. add_mesh(tag, vertices, colors=None, faces=None, config_dict=None, global_step=None, walltime=None)

      简介:添加meshes或3D点云

    16. add_hparams(hparam_dict, metric_dict, hparam_domain_discrete=None, run_name=None)

      简介:添加一系列超参数来比较

    17. flush()

    18. close()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容