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之眼花缭乱的运算符
Sep 14 Python
使用SAE部署Python运行环境的教程
May 05 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
关于windows下Tensorflow和pytorch安装教程
Feb 04 Python
浅谈python处理json和redis hash的坑
Jul 16 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 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
php中count获取多维数组长度的方法
2014/11/03 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
如何更优雅地写python代码
2019/07/02 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
《月亮湾》教学反思
2014/04/14 职场文书
2014组织生活会方案
2014/05/19 职场文书
户籍证明格式
2014/09/15 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
小学见习报告
2015/06/23 职场文书
《包身工》教学反思
2016/02/23 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js