pytorch: PyTorch中 使用 Tensorboard

介绍

因为工作需要,改用pytorch。但如何将训练过程可视化成了大问题。听说pytorch代码中可以插入tensorboard代码,第一反应是居然可以这么玩。。

网络上PyTorch中使用tensorboard的方法有很多。但毕竟tensorboard不是PyTorch框架原生自带的,因此大多方法都只能支持部分功能。经过孙大佬的推荐,觉得使用tensorboardX应该是目前已知的最好方法了。

Usage

环境要求:

  • pytorch>=0.3.1

Install

pip install tensorboardX

调用方法

  1. 首先要import tensorboardX: from tensorboardX import SummaryWriter
  2. 直接往接口喂pytorch形式的tensor即可,so方便: writer.add_histogram('zz/x', x, epoch) writer.add_scalar('data/x', x, epoch) writer.add_scalars('data/scalar_group', {'x': x, 'y': y, 'loss': loss}, epoch) writer.add_text('zz/text', 'zz: this is epoch ' + str(epoch), epoch)
  3. 保存记录信息到.json文件里: writer.export_scalars_to_json("./test.json")
  4. 及时关闭writer: writer.close()

Sample code

import torch
from tensorboardX import SummaryWriter

writer = SummaryWriter()
x = torch.FloatTensor([100])
y = torch.FloatTensor([500])

for epoch in range(100):
    x /= 1.5
    y /= 1.5
    loss = y - x
    print(loss)
    writer.add_histogram('zz/x', x, epoch)
    writer.add_histogram('zz/y', y, epoch)
    writer.add_scalar('data/x', x, epoch)
    writer.add_scalar('data/y', y, epoch)
    writer.add_scalar('data/loss', loss, epoch)
    writer.add_scalars('data/scalar_group', {'x': x,
                                             'y': y,
                                             'loss': loss}, epoch)
    writer.add_text('zz/text', 'zz: this is epoch ' + str(epoch), epoch)

# export scalar data to JSON for external processing
writer.export_scalars_to_json("./test.json")
writer.close()

Demo


[1] tensorboardX开源项目:lanpa/tensorboard-pytorch

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

写给PHP开发者的五个建议

18440
来自专栏Jimoer

Java设计模式学习记录-命令模式

这次要介绍的是命令模式,这也是一种行为型模式。最近反正没有面试机会我就写博客呗,该投的简历都投了。然后就继续看书,其实看书也会给自己带来成就感,原来以前不明白的...

11210
来自专栏Zephery

谈谈个人网站的建立(四)—— 日志系统的建立

谈谈个人网站的建立(四)—— 日志系统的建立 欢迎访问我的网站http://www.wenzhihuai.com/ 。感谢,如果可以,希望能在GitHub上给个...

39940
来自专栏阿杜的世界

【译】Go语言编程模式

在2016年伦敦举办的QCon大会上,Peter Bourgon做了《六年Go语言设计经验》的报告,重点探讨了在使用Go进行开发时的编程模式和反模式。在这里,我...

13330
来自专栏社区的朋友们

HBase 学习分享

有些时候你可曾面对产品看似普通且合理的需求,例如:1、能否让网页活动拉取用户的游戏好友关系链从而更精准的推送Tips? 2、判断用户是否在所有大区都没有角色这类...

83000
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】和开发一起写代码,让测试左移起来

软件工程中有提到测试人员越早的介入到研发的流程当中,就可以越早的发现问题,从而降低发现问题的成本。因此"左移"变得非常的有必要了起来,当然左移的方式有很多,例如...

59300
来自专栏逆向技术

学习逆向知识之用于游戏外挂的实现.第三讲,通过游戏外挂.分析红色警戒金钱基址.以及确定基址小技巧.

                          分析红色警戒金钱基址.以及确定基址小技巧.

13710
来自专栏mini188

openfire的组件(Component)开发

在之前的文章《Openfire阶段实践总结》中提到过一种openfire的扩展模式Compoent。本文将主要探讨对这种模式的应用与开发方法。 内部与外部组件介...

29080
来自专栏Android 开发者

开发者也是用户 — 第一部分:构建更具可用性的 UI 与 API 的 5 个方针

20420
来自专栏申龙斌的程序人生

零基础学编程004:集成开发环境IDE

几天前介绍了《用在线编程环境快速上手》学习Python等编程语言,这种教学环境中的例子都非常简单,你不需要在自己的电脑中安装任何的软件,就可以马上动手学习Pyt...

34350

扫码关注云+社区

领取腾讯云代金券