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通过websocket与js客户端通信示例分析
Jun 25 Python
python中__slots__用法实例
Jun 04 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
python实现kmp算法的实例代码
Apr 03 Python
Python-接口开发入门解析
Aug 01 Python
Django之PopUp的具体实现方法
Aug 31 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
python 模块导入问题汇总
Feb 01 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 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
Angular2库初探
2017/03/01 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
详解python中eval函数的作用
2019/10/22 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
Python sorted对list和dict排序
2020/06/09 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
什么是URL
2015/12/13 面试题
可靠的数据流传输TCP
2016/03/15 面试题
护理自荐信范文
2013/10/05 职场文书
竞选演讲稿范文
2013/12/28 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
财务管理专业求职信
2014/06/11 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL