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获取apk文件URL地址实例
Nov 01 Python
详解python之配置日志的几种方式
May 22 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python实现Kmeans聚类算法
Jun 10 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
Python按钮的响应事件详解
Mar 04 Python
python关闭占用端口方式
Dec 17 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
Jan 06 Python
Python列表解析操作实例总结
Feb 26 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
python分布式爬虫中消息队列知识点详解
Nov 26 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
php类常量的使用详解
2013/06/08 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
2013届毕业生求职信范文
2013/11/20 职场文书
个人函授自我鉴定
2014/03/25 职场文书
交通事故调解协议书
2014/04/16 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
同意报考证明
2015/06/17 职场文书
部分武汉产收音机展览
2022/04/07 无线电