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 06 Python
Python转码问题的解决方法
Oct 07 Python
详细分析python3的reduce函数
Dec 05 Python
python实现简易动态时钟
Nov 19 Python
python3中的eval和exec的区别与联系
Oct 10 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
Python读取实时数据流示例
Dec 02 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
使用python计算三角形的斜边例子
Apr 15 Python
Python实现寻找回文数字过程解析
Jun 09 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python音频处理的示例详解
Dec 23 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函数
2011/05/31 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
javascript date格式化示例
2013/09/25 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python完全新手教程
2007/02/08 Python
浅析python协程相关概念
2018/01/20 Python
python如何实现内容写在图片上
2018/03/23 Python
Python并行分布式框架Celery详解
2018/10/15 Python
django的csrf实现过程详解
2019/07/26 Python
解决python 找不到module的问题
2020/02/12 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
python实现登录与注册系统
2020/11/30 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
汽车检测与维修专业求职信
2013/10/30 职场文书
花坛标语大全
2014/06/30 职场文书
小学教师工作总结2015
2015/04/07 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
公司员工离职感言
2015/08/03 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers