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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python使用插值法画出平滑曲线
Dec 15 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 Python
重构Python代码的六个实例
Nov 25 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 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开发文件系统实例讲解
2006/10/09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
python基础教程之获取本机ip数据包示例
2014/02/10 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
利用python循环创建多个文件的方法
2018/10/25 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
国际商务系学生个人的自我评价
2013/11/26 职场文书
自主招生自荐信
2013/12/08 职场文书
搞笑爱情保证书
2014/04/29 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
vue实现移动端div拖动效果
2022/03/03 Vue.js