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 相关文章推荐
python2.7的编码问题与解决方法
Oct 04 Python
简单谈谈Python流程控制语句
Dec 04 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 Python
Python for循环生成列表的实例
Jun 15 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
django创建超级用户过程解析
Sep 18 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
OpenCV全景图像拼接的实现示例
Jun 05 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
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python中属性和描述符的正确使用
2016/08/23 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
零件设计自荐信范文
2013/11/27 职场文书
客服文员岗位职责
2013/11/29 职场文书
海飞丝广告词
2014/03/20 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
雨中的树观后感
2015/06/03 职场文书
Python图片检索之以图搜图
2021/05/31 Python