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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
python操作摄像头截图实现远程监控的例子
Mar 25 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
django中的setting最佳配置小结
Nov 21 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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/11/23 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python 中Pickle库的使用详解
2018/02/24 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
Python实现登陆文件验证方法
2018/10/06 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
财务副总经理工作职责
2013/11/25 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
先进党员事迹材料
2014/12/24 职场文书
出国导师推荐信
2015/03/25 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python