Pytorch可视化的几种实现方法


Posted in Python onJune 10, 2021

一,利用 tensorboardX 可视化网络结构

参考 https://github.com/lanpa/tensorboardX
支持scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve and video summaries.
例子要求tensorboardX>=1.2 and pytorch>=0.4

安装

pip install tensorboardXpip install git+https://github.com/lanpa/tensorboardX

例子

# demo.py

import torch
import torchvision.utils as vutils
import numpy as np
import torchvision.models as models
from torchvision import datasets
from tensorboardX import SummaryWriter

resnet18 = models.resnet18(False)
writer = SummaryWriter()
sample_rate = 44100
freqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]

for n_iter in range(100):

    dummy_s1 = torch.rand(1)
    dummy_s2 = torch.rand(1)
    # data grouping by `slash`
    writer.add_scalar('data/scalar1', dummy_s1[0], n_iter)
    writer.add_scalar('data/scalar2', dummy_s2[0], n_iter)

    writer.add_scalars('data/scalar_group', {'xsinx': n_iter * np.sin(n_iter),
                                             'xcosx': n_iter * np.cos(n_iter),
                                             'arctanx': np.arctan(n_iter)}, n_iter)

    dummy_img = torch.rand(32, 3, 64, 64)  # output from network
    if n_iter % 10 == 0:
        x = vutils.make_grid(dummy_img, normalize=True, scale_each=True)
        writer.add_image('Image', x, n_iter)

        dummy_audio = torch.zeros(sample_rate * 2)
        for i in range(x.size(0)):
            # amplitude of sound should in [-1, 1]
            dummy_audio[i] = np.cos(freqs[n_iter // 10] * np.pi * float(i) / float(sample_rate))
        writer.add_audio('myAudio', dummy_audio, n_iter, sample_rate=sample_rate)

        writer.add_text('Text', 'text logged at step:' + str(n_iter), n_iter)

        for name, param in resnet18.named_parameters():
            writer.add_histogram(name, param.clone().cpu().data.numpy(), n_iter)

        # needs tensorboard 0.4RC or later
        writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(100), n_iter)

dataset = datasets.MNIST('mnist', train=False, download=True)
images = dataset.test_data[:100].float()
label = dataset.test_labels[:100]

features = images.view(100, 784)
writer.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))

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

运行: python demo.py 会出现runs文件夹,然后在cd到工程目录运行tensorboard --logdir runs

结果:

Pytorch可视化的几种实现方法

二,利用 vistom 可视化

参考:https://github.com/facebookresearch/visdom

安装和启动
安装: pip install visdom
启动:python -m visdom.server示例

from visdom import Visdom
    #单张
    viz.image(
        np.random.rand(3, 512, 256),
        opts=dict(title=\\\\\'Random!\\\\\', caption=\\\\\'How random.\\\\\'),
    )
    #多张
    viz.images(
        np.random.randn(20, 3, 64, 64),
        opts=dict(title=\\\\\'Random images\\\\\', caption=\\\\\'How random.\\\\\')
    )

Pytorch可视化的几种实现方法

from visdom import Visdom

image = np.zeros((100,100))
vis = Visdom() 
vis.text("hello world!!!")
vis.image(image)
vis.line(Y = np.column_stack((np.random.randn(10),np.random.randn(10))), 
         X = np.column_stack((np.arange(10),np.arange(10))),
         opts = dict(title = "line", legend=["Test","Test1"]))

Pytorch可视化的几种实现方法

三,利用pytorchviz可视化网络结构

参考:https://github.com/szagoruyko/pytorchviz

到此这篇关于Pytorch可视化的几种实现方法的文章就介绍到这了,更多相关Pytorch可视化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中无限元素列表的实现方法
Aug 18 Python
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
介绍Python中的文档测试模块
Apr 28 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
详解Python并发编程之从性能角度来初探并发编程
Aug 23 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
Python 防止死锁的方法
Jul 29 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
Python数据类型最全知识总结
May 31 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
OpenCV-Python实现轮廓的特征值
Jun 09 #Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 #Python
Python的这些库,你知道多少?
OpenCV-Python使用cv2实现傅里叶变换
Python合并多张图片成PDF
Jun 09 #Python
Python3 多线程(连接池)操作MySQL插入数据
You might like
队列在编程中的实际应用(php)
2010/09/04 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
PHP代码优化的53个细节
2014/03/03 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
面包屑导航详解
2017/12/07 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
python类的继承实例详解
2017/03/30 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
小学教师岗位职责
2013/11/25 职场文书
应用心理学专业求职信
2014/08/04 职场文书
责任书范本
2014/08/25 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书