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解析html开发库pyquery使用方法
Feb 07 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
Python wordcloud库安装方法总结
Dec 31 Python
java字符串格式化输出实例讲解
Jan 06 Python
pip install命令安装扩展库整理
Mar 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php以post形式发送xml的方法
2014/11/04 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python笔试面试题小结
2019/09/07 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
委托证明的格式
2014/01/10 职场文书
人力资源总监工作说明
2014/03/03 职场文书
活动总结模板
2014/05/09 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
汽车销售合同文本
2019/08/08 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python