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 相关文章推荐
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
深入学习python的yield和generator
Mar 10 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
python爬取淘宝商品销量信息
Nov 16 Python
python将字母转化为数字实例方法
Oct 04 Python
Python如何将函数值赋给变量
Apr 28 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
python hmac模块验证客户端的合法性
Nov 07 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Python matplotlib绘制雷达图
Apr 13 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
PHP 函数学习简单小结
2010/07/08 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
简单的php购物车代码
2020/06/05 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
Python检测生僻字的实现方法
2016/10/23 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
升职自荐信怎么写
2015/03/05 职场文书
毕业实习证明范本
2015/06/16 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
Vue实现下拉加载更多
2021/05/09 Vue.js
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
Docker下安装Oracle19c
2022/04/13 Servers
MySQL批量更新不同表中的数据
2022/05/11 MySQL