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 相关文章推荐
pandas 数据实现行间计算的方法
Jun 08 Python
python 平衡二叉树实现代码示例
Jul 07 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
python如何实现异步调用函数执行
Jul 08 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
Python jieba库分词模式实例用法
Jan 13 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
python批量下载图片的三种方法
2013/04/22 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
代码分析Python地图坐标转换
2018/02/08 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
大学生活学习的自我评价
2013/12/03 职场文书
中学生英语演讲稿
2014/04/26 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
儿童生日会策划方案
2014/05/15 职场文书
班级文化建设标语
2014/06/23 职场文书
实验心得体会
2014/09/05 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
使用Python拟合函数曲线
2022/04/14 Python
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server