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入门篇之文件
Oct 20 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
python使用minimax算法实现五子棋
Jul 29 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
Python 实现自动导入缺失的库
Oct 29 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
Python实现桌面翻译工具【新手必学】
Feb 12 Python
Python文件名匹配与文件复制的实现
Dec 11 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 Python
Python如何使用循环结构和分支结构
Apr 13 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JQuery 入门实例1
2009/06/25 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
django 实现电子支付功能的示例代码
2018/07/25 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
利用python实现AR教程
2019/11/20 Python
Python sorted对list和dict排序
2020/06/09 Python
python程序如何进行保存
2020/07/03 Python
python 获取字典键值对的实现
2020/11/12 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
学校节能宣传周活动总结
2014/07/09 职场文书
海洋科学专业求职信
2014/08/10 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
教师节横幅标语
2014/10/08 职场文书
单位同意报考证明
2015/06/17 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书