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实现斐波那契数列的方法示例
Jan 12 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
关于Python中定制类的比较运算实例
Dec 19 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
Python 中由 yield 实现异步操作
May 04 Python
python 带时区的日期格式化操作
Oct 23 Python
python实现图片批量压缩
Apr 24 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php数组合并的二种方法
2014/03/21 PHP
php上传文件常见问题总结
2015/02/03 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
使用Python编写vim插件的简单示例
2015/04/17 Python
Python实现自动发送邮件功能
2021/03/02 Python
python re模块findall()函数实例解析
2018/01/19 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
自荐信格式技巧有哪些呢
2013/11/19 职场文书
班级聚会策划书
2014/01/16 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
群众路线领导对照材料
2014/08/23 职场文书
工作简报怎么写
2015/07/21 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
Python保存并浏览用户的历史记录
2022/04/29 Python