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脚本来获取mp3文件tag信息的教程
May 04 Python
python读取文件名称生成list的方法
Apr 27 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
Python创建普通菜单示例【基于win32ui模块】
May 09 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python os.path模块常用方法实例详解
Sep 16 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
python浪漫表白源码
Apr 05 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
python单例模式的应用场景实例讲解
Feb 24 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 日漫
深入php var_dump()函数的详解
2013/06/05 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
python 图片验证码代码
2008/12/07 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
python3.x实现发送邮件功能
2018/05/22 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python版本五子棋的实现代码
2018/12/11 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
浅析Python 条件控制语句
2020/07/15 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
优秀员工个人的自我评价
2013/11/29 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
爽歪歪广告词
2014/03/20 职场文书
领导工作表现评语
2015/01/04 职场文书
民事代理词范文
2015/05/25 职场文书
机械生产实习心得体会
2016/01/22 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
python 破解加密zip文件的密码
2021/04/22 Python
Python实现生成bmp图像的方法
2021/06/13 Python
python百行代码实现汉服圈图片爬取
2021/11/23 Python