pytorch 模型可视化的例子


Posted in Python onAugust 17, 2019

如下所示:

一. visualize.py

from graphviz import Digraph
import torch
from torch.autograd import Variable
 
 
def make_dot(var, params=None):
  """ Produces Graphviz representation of PyTorch autograd graph
  Blue nodes are the Variables that require grad, orange are Tensors
  saved for backward in torch.autograd.Function
  Args:
    var: output Variable
    params: dict of (name, Variable) to add names to node that
      require grad (TODO: make optional)
  """
  if params is not None:
    assert isinstance(params.values()[0], Variable)
    param_map = {id(v): k for k, v in params.items()}
 
  node_attr = dict(style='filled',
           shape='box',
           align='left',
           fontsize='12',
           ranksep='0.1',
           height='0.2')
  dot = Digraph(node_attr=node_attr, graph_attr=dict(size="12,12"))
  seen = set()
 
  def size_to_str(size):
    return '('+(', ').join(['%d' % v for v in size])+')'
 
  def add_nodes(var):
    if var not in seen:
      if torch.is_tensor(var):
        dot.node(str(id(var)), size_to_str(var.size()), fillcolor='orange')
      elif hasattr(var, 'variable'):
        u = var.variable
        name = param_map[id(u)] if params is not None else ''
        node_name = '%s\n %s' % (name, size_to_str(u.size()))
        dot.node(str(id(var)), node_name, fillcolor='lightblue')
      else:
        dot.node(str(id(var)), str(type(var).__name__))
      seen.add(var)
      if hasattr(var, 'next_functions'):
        for u in var.next_functions:
          if u[0] is not None:
            dot.edge(str(id(u[0])), str(id(var)))
            add_nodes(u[0])
      if hasattr(var, 'saved_tensors'):
        for t in var.saved_tensors:
          dot.edge(str(id(t)), str(id(var)))
          add_nodes(t)
  add_nodes(var.grad_fn)
  return dot

二. 使用步骤

import torch
from torch.autograd import Variable
from models import *
from visualize import make_dot
x = Variable(torch.rand(1, 3, 256, 256))
model = GeneratorUNet()
y = model(x)
g = make_dot(y)
g.view()

三. 效果展示

pytorch 模型可视化的例子

以上这篇pytorch 模型可视化的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之对象和类的实际运用
Aug 29 Python
Python脚本实现下载合并SAE日志
Feb 10 Python
探究Python多进程编程下线程之间变量的共享问题
May 05 Python
Python实用日期时间处理方法汇总
May 09 Python
Python只用40行代码编写的计算器实例
May 10 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
Pytorch 数据加载与数据预处理方式
Dec 31 Python
python实现文法左递归的消除方法
May 22 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
pytorch实现手写数字图片识别
May 20 Python
pytorch 输出中间层特征的实例
Aug 17 #Python
基于pytorch的保存和加载模型参数的方法
Aug 17 #Python
pytorch 固定部分参数训练的方法
Aug 17 #Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 #Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 #Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 #Python
Pytorch 实现自定义参数层的例子
Aug 17 #Python
You might like
phpfans留言版用到的install.php
2007/01/04 PHP
关于php fread()使用技巧
2010/01/22 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现中文输出的两种方法
2015/05/09 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
超市仓管员岗位职责
2014/04/07 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
工地安全生产标语
2014/06/06 职场文书
买房子个人收入证明
2014/10/12 职场文书
总经理岗位职责范本
2015/04/01 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书