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基于Tkinter的HelloWorld入门实例
Jun 17 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
python使用epoll实现服务端的方法
Oct 16 Python
python 格式化输出百分号的方法
Jan 20 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
用python实现一个简单的验证码
Dec 09 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/01/05 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
深入理解Node module模块
2018/03/26 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
python利用faker库批量生成测试数据
2020/10/15 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
医院办公室主任职责
2013/12/29 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
产品开发计划书
2014/04/27 职场文书
中层干部培训方案
2014/06/16 职场文书
模范教师材料大全
2014/12/16 职场文书
市场营销计划书
2015/01/17 职场文书
小学教研工作总结2015
2015/05/13 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL