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实现文本去重且不打乱原本顺序
Jan 26 Python
python爬虫的工作原理
Mar 05 Python
Python Json序列化与反序列化的示例
Jan 31 Python
深入浅析Python传值与传址
Jul 10 Python
Django的性能优化实现解析
Jul 30 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
python安装scipy的步骤解析
Sep 28 Python
python 伯努利分布详解
Feb 25 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Python 如何展开嵌套的序列
Aug 01 Python
python 下划线的不同用法
Oct 24 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
ThinkPHP的I方法使用详解
2014/06/18 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
css图片自适应大小
2007/11/28 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
python字符串排序方法
2014/08/29 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python2与Python3的区别详解
2020/02/09 Python
python logging 日志的级别调整方式
2020/02/21 Python
pyqt5中动画的使用详解
2020/04/01 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
微笑面对生活演讲稿
2014/09/23 职场文书
个人整改方案范文
2014/10/25 职场文书
撤诉申请怎么写
2015/05/19 职场文书
《三国志》赏析
2019/08/27 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
python playwright 自动等待和断言详解
2021/11/27 Python
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript